java - emulator - latest android studio




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

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

gradle --refresh-dependencies

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

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

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

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

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

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


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


جربت كل الحل المقدم هنا ولم يعمل أي منهم من أجلي. في الإصدار 2019.1.3 أنا فقط تنظيف وإعادة بناء قطعة أثرية وأنها عملت. قم أولاً Build -> Build Artifacts... -> <select your artifact> -> Clean ثم انقر فوق Build أو Rebuild من نفس المكان.


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

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

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

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

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


ها هو الحل

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

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

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

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

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

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

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



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


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







android-6.0.1-marshmallow