ClassNotFound / NoSuchMethod çökmesi
Hata metni
java.lang.ClassNotFoundException: Didn't find class "com.example.Foo" on path: DexPathList java.lang.NoSuchMethodError: No virtual method bar()V in class Lcom/example/Foo;
Neden
Çalışma anında sınıf ya da metot bulunamıyor. Neden genelde R8'in kodu silmesi, iki sürümlü kütüphane ya da multidex sorunudur.
Adım adım çözüm
adb logcat -b crashile tam stack trace'i al.- Yalnız release'te oluyorsa R8 suçludur:
-keepkuralı ekle. - Reflection ve JSON model sınıflarını
-keepile koru. dependenciesile aynı kütüphanenin iki sürümü var mı bak.- İz karışıksa
mapping.txtileretraceçalıştır.
Örnek komutlar
adb logcat -b crash
./gradlew :app:dependencies --configuration releaseRuntimeClasspath
# proguard-rules.pro
-keep class com.example.Foo { *; }
retrace mapping.txt trace.txtTekrarlanmasın diye
Reflection kullanıyorsan release APK'yı her seferinde dene.
Yazar ve lisans: Nibras Code
- APK kurulmuyor
- Parse error nedir?
- Keystore kayboldu
- İmzalar uyuşmuyor
- Paket adı hatası
- APK dosyası bozuldu
- Play Protect engelliyor
- Paket geçersiz görünüyor
- Depolama yetmiyor
- Telefon uyumlu değil
- Eski sürüm kurulmuyor
- XAPK kurulmuyor
- Gradle sync başarısız
- Bağımlılık çözülemedi (Could not resolve)
- Duplicate class hatası
- Manifest merger failed
- Dex sınırı: 65536 metot
- R8: Missing class
- JDK sürümü uyumsuz
- SDK location not found
- minSdkVersion çakışması
- compileSdk çok düşük
- EAS build: Gradle hatası
- expo prebuild hatası
- Metro: Unable to resolve module
- Hermes: yalnızca release'te JS hatası
- Release'te beyaz ekran
- Kırmızı ekran: Metro'ya bağlanamıyor
- Expo SDK uyumsuzluğu
- Capacitor sync hatası
- Capacitor: beyaz ekran
- EAS: keystore ve credentials hatası
- Keystore tampered / parola yanlış
- Anahtar alias'ı ya da parolası yanlış
- Play: yanlış anahtarla imzalanmış
- INSTALL_FAILED_UPDATE_INCOMPATIBLE
- INSTALL_FAILED_VERSION_DOWNGRADE
- INSTALL_FAILED_INSUFFICIENT_STORAGE
- INSTALL_FAILED_NO_MATCHING_ABIS
- Parse hatası (paket ayrıştırılamadı)
- «App not installed» hatası
- AAB dosyasını telefona kurmak
- adb: cihaz «unauthorized»
- adb: cihaz bulunamıyor
- adb server sürüm uyumsuzluğu
- Activity class does not exist
- Play: targetSdk seviyesi düşük
- Play: izin politikası reddi
- Play: 64-bit şartı
- Play: versionCode zaten kullanılmış
- OutOfMemoryError çökmesi
- CLEARTEXT communication not permitted
- SecurityException: izin verilmedi