APK xətaları

Activity class does not exist

Xəta mətni

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] }

Səbəb

Başladılacaq ekran sinfi APK-da tapılmır. Manifestdə ad yanlışdır, LAUNCHER filtri yoxdur və ya R8 sinfi silib.

Addım-addım həll

  1. aapt2 dump badging app.apk | grep launchable ilə APK-nın əsas aktivitesini oxu.
  2. Manifestdə MAIN və LAUNCHER intent filtri olan <activity>-nin olduğunu yoxla.
  3. Tam ad və paket adı uyğundur? applicationId ilə namespace fərqli ola bilər.
  4. Release-də R8 aktivitenin adını dəyişibsə, manifest sinifləri avtomatik saxlanılır, lakin xüsusi hallarda -keep yaz.
  5. adb shell am start -n paket/.Aktivite ilə əl ilə başlat.

Nümunə əmrlər

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

Təkrarlanmasın deyə

Başlanğıc aktivitenin adını dəyişəndə manifesti də dərhal yenilə.

Müəllif və lisenziya: Nibras Code