السلام عليكم اخوتي الاعزاء لدي مشكلة برمجية في تطبيق اندرويد اقوم بالعمل عليه منذ فترة
وهي ان التطبيق عند تشغيله على المحاكي تظهر رسالة( توقف التطبيق " اعادة تشغيل التطبيق ").
وهذا الامر يتكرر مع الهاتف مع جميع اصدارات الاندرويد وعند فحص المشكلة في اندرويد ستوديو باستخدام android monitor ظهر هذا الكود بالاحمر وهذا هو سبب المشكلة ولكن لااعرف الحل صراحة .
هذا هو الكود
code
07-30 16:49:04.222 2564-3485/android.process.media E/DatabaseUtils: Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3504, uid=10071 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:608)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:483)
at android.content.ContentProvider$Transport.query(ContentProvider.java:212)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:565)
07-30 16:49:04.223 3504-3504/com... D/AndroidRuntime: Shutting down VM
--------- beginning of crash
07-30 16:49:04.224 3504-3504/com.egalaska.mypix E/AndroidRuntime: FATAL EXCEPTION: main Process: com.egalaska.mypix, PID: 3504 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.egalaska.mypix/com.project.yura.photoeditor.EditImageActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3504, uid=10071 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=3504, uid=10071 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() at android.os.Parcel.readException(Parcel.java:1684) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) at android.content.ContentResolver.query(ContentResolver.java:532) at android.content.ContentResolver.query(ContentResolver.java:474) at com.project.yura.photoeditor.Model.Helper.getDataColumn(Helper.java:111) at com.project.yura.photoeditor.Model.Helper.getPathFromUri(Helper.java:81) at com.project.yura.photoeditor.EditImageActivity.onCreate(EditImageActivity.java:64) at android.app.Activity.performCreate(Activity.java:6679) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
code
لم استطع قراءة ال logs بشكل صحيح من الهاتف.
هل تستطيع وضعها كصورة؟ بالاضافه لصورة من ملف ال Manifest و سطر الكود الذي تحصل فيه المشكلة
هذه هي الصور المطلوبة :
اما عن سطر الكود فلا يوجد سطر به اخطاء ولا البرنامج " اندرويد ستوديو " ايضاً يظهر فيه اخطاء في الاكواد وهذا هو المحير في الامر البرنامج يصدر ملف apk بشكل طبيعي ليس به مشاكل لكن عند تشغيل البرنامج في بعض الهواتف لايفتح ويظهر رسالة توقف التطبيق اما في بعض الهواتف يفتح ويظهر اول اكتيفتي ثم عند اختيار احد الخيارات وهي اما التصوير عن طريق الكامير او اختيار من الصور عند الصغط على اختيار الكاميرا يظهر رسالة توقف التطبيق لكن عند اختيار من الصور يختار الصور ثم بعد ذلك يكرر نفس الامر ، ارجو ان اكون وضحت المشكلة بشكل طبيعي ويمكنني ان ارسل لك ملفات المشروع بالكامل لكي تفحصها اذا اردت المساعدة .
أفهم من كلامك أنك تريد من المستخدم إختيار صورة من أستوديو الصور أو أن يقوم بإلتقاط صور بالكاميرا مباشرة أليس كذلك؟
وأن رسالة توقف التطبيق تظهر عندما يختار المستخدم إختيار "إلتقاط صورة بالكاميرا".
إذا كان الأمر كذلك. فيجب عليك إضافة أو طلب صلاحية الوصول إلى الكاميرا في ملف الـ Manifest و في الكود أيضاً.
قم بإضافة هذا السطر في ملف الـ Manifest مع الصلاحيات الأخرى.
"uses-permission android:name="android.permission.CAMERA
ثم ضع هذا الكود في بداية الـ onCreate قبل أي كود آخر للـ Activity الذي يحصل بها الخطأ.
if (ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED)ActivityCompat.requestPermissions(activity, new String[] {Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode);
يا له من محرر أكواد غبي يا حسّوب -ـ-.
يُفضل أن تقرأ هذه الصفحة عن الصلاحيات إذا أردت المزيد من المعلومات حول الموضوع.
تمام قرات الرابط ونفذت مااخبرتني به الان مسبقاً لكن يظهر لي رسالة خطأ اخرى تقريباً هذه الرسالة لاني اضع الكود في المكان الخطأ في الترتيب سوف ارسل لك ملف كود الجافا وضعه لي في المكان المحدد واكتب بجواره تعليق ان هذا هو المكان المحدد له واكون شاكر لك لمساعدتك واعلم اني ازعجك بهذا لكن ارجو منك ان تقبل اعتزاري لك وتساعدني في حل هذه المشكلة
موجود في الملف المضغوط MainActivity وملف اخر EditActivitey هو الاخير الذي اضيف له الكود ويقع فيه اخطاء
حسناً اخي ما هي رسالة الخطأ التي تظهر لك إذاً ؟ لم أفهم ما سبب المشكلة حقاً.
بالإضافة بأني لا أرى الكود الذي طلبت منك إضافته في أي من الملفين.
هذه هي رسالة الخطأ
Error:(46, 83) error: ')' expected
Error:(47, 23) error: not a statement
Error:(47, 41) error: ';' expected
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
Compilation failed; see the compiler error output for details.
هذي هي المشكلة إذاً. الخطأ يحدث بسبب الكود المضاف حديثاً. والذي بنفس الوقت لا يظهر عندي في الملفات التي أرسلتها. هلّا أرسلتها مجدداً بعد إضافة الكود الذي طلبته منك؟
اخي الكريم هل لديك حساب في خمسات فهكذا ان اخذ من وقتك ع الفاضي حرام عليا اتعبك معايا ع الفاضي لوعندك حساب في خمسات ارسل لي اللينك الخاص به لكي اشتري منك خدمة
لا داعي لذلك فلا فائده من خبرتي إذا لم أساعد أو أُفِد الآخرين بها
3>
عزيزي هذا هو الكود عند السطر رقم 46 في الملف الذي أرسلته لي.
currentSession = CurrentSession.GetInstance();
String pathString = null;
if (getIntent().getExtras() != null) {
pathString = getIntent().getExtras().getString(IMAGE_TO_EDIT_URI);
currentSession.path = pathString;
}
بإختصار لا يوجد اي خطأ كما أرى. بالإضافة بأني لا أرى الكود الذي يفترض به أن يطلب صلاحية الوصول للكاميرا وذاكرة التخزين الخارجي.
هل أنت متأكد من إرسالك للملفات الصحيحة؟
التعليقات