با سلام و خسته نباشید خدمت شما و همکارن محترمتون
من زمانی که از کابل و گوشی برای تست برنامه تو حالت debuge میکنم هیچ مشکلی ندارم؛ اما زمانی که apk برنامه رو که با روش Archive (Release ) خروجی گرفتم رو نصب میکنم برنامه force close! میده
خیلی سعی کردم مشکل رو پیدا کنم اما متاسفانه موفق نشدم، حدس خودم بر اینه که ممکنه dll های sqlite که توی برنامه استفاده شده درست توی apk برنامه build نشده
ممنون میشم منو توی رفع این مشکل راهنمائی بفرمائید.
با تشکر
وقتی برنامه در مرحله Release کار نمیکنه اولین موردی که باید بررسی بشه Permission ها هستند
بررسی کنید که درسترسی های مورد نظر را به برنامه داده باشید
ممنون از جواب شما
قبلا هم sqlite از استفاده کرده بودم(حتی توی کلاسی که خدمت شما بودم بارها تست و استفاده کردیم) تنها تفاوت نسخه اندروید و SDK هستش، دستگاهی که دارم برنامه رو نصب میکنم tablet samsung android 7.0 (api24) هست
تمام ملزومات SDK رو هم کامل روی VIsual stedio و Xamarin نصب کردم، دسترسی ها رو هم همینطور
با کابل و Debuge کاملا درست کار میکنه، اما apk که میگیرم و نصب میکنم موقع کوئری زدن Force Close میده
در دیوایس دیگری با همین Api یا بالاتر هم تست کردید ؟
ممکنه مشکل از این دیوایس باشه
نه متاسفانه تست نکردم، راستش این برنامه فقط باید رو این دستگاه و نسخه نصب بشه
تست روی دستگاه دیگه رو هم انجام میدم
موضوعی که متوجه شدم این هستش که permission هائی که توی AndroidManifest انتخاب کردم موقع نصب روی تبلت اعمال نمیشه، اما بصورت دستی هم که این دسترسی ها روی تلبت به برنامه میدم بازم با مشکل Force Close مواجه میشه
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
بعد از کلی جستجو بالاخره علت این مشکل رو پیدا کردم!!!!
برای این مجوزها، برنامه targetSdkVersion 23 وبالاتر نه تنها باید <uses-permission> را داشته باشه، بلکه باید مجوزها در زمان اجرا از کاربر در دستگاههای Android 6.0+ استفاده کنید، با استفاده از روشهایی مانند checkSelfPermission () و requestPermissions () دسترسی ها باید کنترل بشه!
فعلا راه حل موقت برای رفع این مشکل این بود که targetSdkVersion را زیر به 23 تغییر دادم.
با این حال، اگر لازم باشه حتما از targetSdkVersion 23 یا بالاتر استفاده کنید باید برنامه خود را برای استفاده از سیستم مجوز زمان اجرا جدید تنظیم کنید. ظاهراً مستندات Android یک صفحه اختصاصی به این موضوع تخصیص داده، من فعلا فرصت چک کردن این موضوع رو نداشتم
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)