APK hataları

Activity class does not exist

Hata metni

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

Neden

Başlatılacak ekran sınıfı APK'da bulunamıyor. Manifestteki ad yanlış, LAUNCHER filtresi yok ya da R8 sınıfı silmiş.

Adım adım çözüm

  1. aapt2 dump badging app.apk | grep launchable ile APK'nın ana aktivitesini oku.
  2. Manifestte MAIN ve LAUNCHER intent filtreli bir <activity> olduğunu kontrol et.
  3. Tam ad ve paket adı uyuyor mu? applicationId ile namespace farklı olabilir.
  4. Release'te R8 aktivite adını değiştirdiyse özel durumlarda -keep kuralı yaz.
  5. adb shell am start -n paket/.Aktivite ile elle başlat.

Örnek komutlar

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

Tekrarlanmasın diye

Başlangıç aktivitesinin adını değiştirirsen manifesti hemen güncelle.

Yazar ve lisans: Nibras Code