View Full Version : استفاده از کتابخانه acra.ch
esmaeilbf
شنبه 03 خرداد 1393, 16:02 عصر
برای دیباگ برنامه میخوام از این کتابخونه استفاده میکنم http://acra.ch/
وقتی برنامه کامل اجرا بشه و در حین اجرا یک exception رخ بده برنامه خطای logcat رو نشون میده اما روی چندتا گوشی تست کردم به محض tap کردن آیکون برنامه برای اجرا ، همونجا برنامه " متوقف " میشه اصلا run نمیشه در نتیجه اصلا خطای logcat رو نمیشه فهمید!!
راه حل چی هست ؟
لطفا کمک کنید
rubiks.kde
شنبه 03 خرداد 1393, 18:56 عصر
دوست عزیز قبل از ایجاد تاپیک سرچ کنید لطفا.تاپیک تکرایه (http://barnamenevis.org/showthread.php?420474-%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA-%D8%A7%D9%86%D8%AA%D8%B4%D8%A7%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&p=1881136&highlight=acra#post1881136)
esmaeilbf
شنبه 03 خرداد 1393, 19:52 عصر
قبل از ایجاد سرچ کردم و تاپیک شما رو پیدا کردم اما مشکل من چیز دیگه ای هست ،
من کتابخونه رو به پروژه اضافه کردم و به درستی کار میکنه اما به این صورت :
اگر برنامه کامل اجرا شد و یک خطا پس از اون رخ داد برنامه خطا رو نشون میده اما روی بعضی از گوشیها تو مرحله قبل از اجرا کامل خطا رخ میده
(یعنی من حدس میزنم خطا از کلاسی هست که از application ا مشتق شده)
چون به محض تپ روی ایکون ، برنامه متوقف میشه به همین دلیل اصلا خطای logcat رو نشون نیده (پیغام toast هم نمیاد)
esmaeilbf
یک شنبه 04 خرداد 1393, 11:01 صبح
چطور خطاهای logcat کلاسی که از Application مشتق شده رو رو پیدا کنیم؟!!!(باتوجه به اینکه اگر خطایی در این کلاس باشه acra خطا رو نشون نمیده!!)
rubiks.kde
یک شنبه 04 خرداد 1393, 13:01 عصر
خودتون لاگ بزارید و ببینید دقیقا مشکل چیه
چون اگه خطا از ان کلاس و قبل اجرا acra باشه نمیشه خطا رو با این کتابخونه دید
esmaeilbf
یک شنبه 04 خرداد 1393, 13:39 عصر
خودتون لاگ بزارید و ببینید دقیقا مشکل چیه
چون اگه خطا از ان کلاس و قبل اجرا acra باشه نمیشه خطا رو با این کتابخونه دید
مشکل همینه ، روی امولاتور و چندین گوشی تست کردم برنامه بدون مشکل کار میکنه اما روی برخی از گوشی ها مثل ( GLX ) برنامه کرش میکنه و چون منم به این گوشی ها دسترسی ندارم نمی تونم logcat رو بررسی کنم!!
حدسم اینه که علت خطا احتمالا از الگوریتم کپی دیتابیس توی SDCard باشه که روی برخی از گوشی ها به درستی کار نمیکنه
اینم کد ها : به نظرتون چیکار کنم؟
public class G extends Application {
public static Context context;
public static String packageName;
public static SQLiteDatabase database;
public static String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsol utePath();
public static String DIR_APP;
@Override
public void onCreate() {
super.onCreate();
try {
context = getApplicationContext();
packageName = context.getPackageName();
DIR_APP = DIR_SDCARD + "/android/data/" + packageName;
new File(DIR_APP).mkdirs();
AssetManager manager = context.getAssets();
InputStream inputStream;
File file = new File(DIR_APP + "/my_db.sqlite");
if ( !file.exists()) {
inputStream = manager.open("my_db.sqlite");
HelperIO.copyFile(inputStream, DIR_APP + "/my_db.sqlite");
}
if (file.exists()) {
database = SQLiteDatabase.openDatabase(DIR_APP + "/my_db.sqlite", null, 0);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
rubiks.kde
یک شنبه 04 خرداد 1393, 19:09 عصر
کدت که در ظاهر هیچ مشکلی نداره تنها تابع HelperIO رو اگه خودتون نوشتید و کتابخانه خاصی نیست ببینید اندازه بافر رو چقد گرفته شاید توی اون گوشی ها مشکل وجود داره.
اگه مشگل ازاین نبود قبل از کپی حتما وضعیت کارت حافظه رو بررسی کنید که mount شده باشه چون ممکنه طرف در زمان نصب برنامه شما گوشیش به کامپیوتر و یا چیز دیگه ایی وصل شده باشه که کارت حافظش mount نباشه و این هم دردسر ساز شده باشه.
به هر حال توی قسمت catch حافظه رو به محل نصب برنامه کپی کنید و ببینید جواب میده یا نه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.