أخطاء APK

Activity class does not exist

نص الخطأ

Error type 3
Error: Activity class {com.example.app/com.example.app.MainActivity} does not exist.
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] }

السبب

لا يُعثر على صنف الشاشة المراد تشغيلها داخل APK. اسمها في المانيفست خاطئ أو لا يوجد مرشح LAUNCHER أو حذفها R8.

الحل خطوة بخطوة

  1. اقرأ النشاط الرئيسي لـ APK بـ aapt2 dump badging app.apk | grep launchable.
  2. تأكد أن المانيفست يحوي <activity> بمرشحي MAIN وLAUNCHER.
  3. هل الاسم الكامل واسم الحزمة متطابقان؟ قد يختلف applicationId عن namespace.
  4. إن غيّر R8 اسم النشاط في release فأضف قاعدة -keep في الحالات الخاصة.
  5. شغّله يدويًا بـ adb shell am start -n الحزمة/.النشاط.

أوامر للمثال

adb shell pm resolve-activity --brief com.example.app
adb shell am start -n com.example.app/.MainActivity
aapt2 dump badging app.apk | grep launchable

كيف لا يتكرر

عند تغيير اسم نشاط البدء حدّث المانيفست فورًا.

المؤلف والترخيص: Nibras Code