java studio "شفرة المصدر لا تتطابق مع الرمز الفرعي" عند تصحيح الأخطاء على الجهاز



latest android studio (8)

لدي تطبيق أجمعه مقابل مستوى API 21:

ثم تصحيحه على جهاز حقيقي مع مستوى API 23:

المشكلة هي عندما أحاول تصحيح الأخطاء من خلال فصول نظام التشغيل أندرويد الخاصة ، أحصل على "شفرة المصدر لا تتطابق مع الرمز الفرعي". لماذا يحدث هذا؟ جهاز الاختبار الذي يعمل عليه التطبيق هو مستوى API 23 ، والملف المصدر الذي يتم تصحيحه هو المستوى 23 أيضًا.

أنا فعلا محتار. هل يمكن لأي شخص أن يشرح لماذا أرى هذه الرسالة وكيف يمكنني إصلاحها؟


هنا هو الحل الخاص بي

إذا حصلت على أكثر من مكتبة إصدار واحد ، فقد يساعدك ذلك.

  1. تعيين نقطة توقف على شفرة المصدر ليب
  2. دع الشفرة تعمل حتى نقطة الإيقاف
  3. سوف تحصل على هذه النصائح

  4. انقر على أيقونة السهم

  5. سوف تحصل على هذا

  6. انقر نقرًا مزدوجًا لتحديد ليب الصحيح (عادةً ما تكون أعلى نسخة ليب صحيحة)

    إذا قمت بالنقر فوق الزر "تعطيل" عن طريق الخطأ ، فيمكنك تمكينه في إعداد المصحح

إذا لم تكن قد حصلت على النصائح int الخطوة 3 ، فربما يمكنك التحقق من قيامك بمراجعة خيارات الإعداد.


يجب عليك استخدام محاكي Android بنفس مستوى api مثل compileSdkVersion. في حالتك ، يجب عليك استخدام محاكي Android مع مستوى api 21.


ربما يمكن أن يكون لرسالة الخطأ هذه أكثر من سبب ، فإن حالتي لم تكن مثل الحالة من البروتوكول الاختياري ، وفي هذه الحالة كان ذلك بسبب مكتبة طرف ثالث تطلب مكتبات إضافية.

على سبيل المثال: قمت بإضافة X.jar يدويًا إلى LIB الخاص بك ، ولكن X.jar يتطلب أن يعمل Z.jar.

استغرق الأمر مني بعض الوقت لمعرفة ذلك ، لم تكن الرسالة مفيدة على الإطلاق. اضطررت لتصحيح التطبيق حتى وصلت إلى الفئة المتعطلة ، وفي تلك الفئة تأكد من أن جميع الواردات كانت راضية.

(على وجه الخصوص: أضفت MercadoLibre-0.3.4.jar ، الأمر الذي يتطلب commons-httpclient.jar)

أتمنى أن يساعدك هذا!



يأخذ Android Studio الإصدار المصدر مساوياً للنسخة المستهدفة في تطبيقك. تم إجراء التجميع باستخدام إصدار مصدر مساوٍ لـ Compile Version المذكور أعلاه. لذلك ، احذر أنه في مشروعك Compile Version == Target Target (ضبط ملف build.gradle الخاص بالوحدة).


إذا كنت تستخدم Gradle ، فمن المحتمل أنها مشكلة في ذاكرات التخزين المؤقت Gradle. ( Reference ). للأسف ، حتى لو قمت بتشغيل

gradle --refresh-dependencies

، انها ليست منعشة حقا كل التبعيات. بعض بقايا القمامة. ( Reference ).

لذا ، فإن الخيار الأكثر تقينًا (ولكنه جذري وطويل) هو مسح الكل من الداخل من [user] /. gradle / caches. أو للعثور على مشروع مشكلتك هناك ، قم بمسح ذاكرة التخزين المؤقت الخاصة به فقط.


انتقل إلى إعدادات المشروع> الأعمال الفنية. حدد قطعة أثرية التي لديها مشكلة. هناك خيار "تضمين في بناء المشروع". يجب التحقق من ذلك (ممكّن). بالنسبة للإصدارات الأقدم من IntelliJ ، يكون هذا الخيار "Make on build".


يمكن أن يحدث هذا أيضًا في حالة تمكين ProGuard. في buildTypes ، قم بتعيين minifyEnabled false ، shrinkResources false ، useProguard false





android-6.0.1-marshmallow