ClassNotFound / NoSuchMethod çökməsi
Xəta mətni
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;
Səbəb
İş vaxtı sinif və ya metod tapılmır. Səbəb adətən R8-in kodu silməsi, iki versiyalı kitabxana və ya multidex problemidir.
Addım-addım həll
adb logcat -b crashilə tam stack trace-i götür.- Yalnız release-də baş verirsə, R8 səbəbkardır:
-keepqaydası əlavə et. - Reflection və JSON modellərinin siniflərini
-keepilə qoru. dependenciesilə eyni kitabxananın iki versiyasının olub-olmadığına bax.- Stack trace qarışıqdırsa,
mapping.txtiləretraceişlət.
Nümunə əmrlər
adb logcat -b crash
./gradlew :app:dependencies --configuration releaseRuntimeClasspath
# proguard-rules.pro
-keep class com.example.Foo { *; }
retrace mapping.txt trace.txtTəkrarlanmasın deyə
Reflection istifadə edirsənsə, release APK-nı hər dəfə sına.
Müəllif və lisenziya: Nibras Code
- APK qurulmur
- Parse error nədir?
- Keystore itdi
- İmzalar uyğun gəlmir
- Paket adı xətası
- APK faylı zədələnib
- Play Protect bloklayır
- Paket etibarsız görünür
- Yaddaş çatmır
- Telefon uyğun deyil
- Köhnə versiya qurulmur
- XAPK qurulmur
- Gradle sync alınmadı
- Asılılıq tapılmadı (Could not resolve)
- Duplicate class xətası
- Manifest merger failed
- Dex limiti: 65536 metod
- R8: Missing class
- JDK versiyası uyğun gəlmir
- SDK location not found
- minSdkVersion toqquşması
- compileSdk çox aşağıdır
- EAS build: Gradle xətası
- expo prebuild xətası
- Metro: Unable to resolve module
- Hermes: yalnız release-də JS xətası
- Release-də ağ ekran
- Qırmızı ekran: Metro-ya qoşulmur
- Expo SDK versiyası uyğun gəlmir
- Capacitor sync xətası
- Capacitor: ağ ekran
- EAS: keystore və credentials xətası
- Keystore tampered / parol yanlış
- Açar alias və ya parolu səhvdir
- Play: səhv açarla imzalanıb
- INSTALL_FAILED_UPDATE_INCOMPATIBLE
- INSTALL_FAILED_VERSION_DOWNGRADE
- INSTALL_FAILED_INSUFFICIENT_STORAGE
- INSTALL_FAILED_NO_MATCHING_ABIS
- Paketi təhlil etmə xətası (Parse error)
- «App not installed» xətası
- AAB faylını telefona qurmaq
- adb: cihaz «unauthorized»
- adb: cihaz tapılmır
- adb server versiyası uyğun gəlmir
- Activity class does not exist
- Play: targetSdk səviyyəsi aşağıdır
- Play: icazə siyasəti rədd etdi
- Play: 64-bit tələbi
- Play: versionCode artıq istifadə olunub
- OutOfMemoryError çökməsi
- CLEARTEXT communication not permitted
- SecurityException: icazə verilməyib