R8: Missing class
Hata metni
ERROR: R8: Missing class com.example.Foo (referenced from: void com.example.Bar.run()) Missing classes detected while running R8. Please add the missing classes or apply additional keep rules.
Neden
R8 kodu küçültürken var olmayan bir sınıfa referans görür. Release derlemede kütüphane kuralı eksik olunca olur.
Adım adım çözüm
build/outputs/mapping/release/missing_rules.txtdosyasını aç. R8 eksik kuralları orada yazar.- O satırları
proguard-rules.prodosyasına kopyala. - Sınıf gerçekten gerekmiyorsa
-dontwarn, gerekiyorsa-keepyaz. - Kütüphanenin kendi
consumer-ruleskuralları var mı bak, sürümü güncelle. ./gradlew assembleReleaseile yeniden derle, uygulamayı telefonda aç.
Örnek komutlar
# app/build/outputs/mapping/release/missing_rules.txt faylına bax
# proguard-rules.pro
-keep class com.example.Foo { *; }
-dontwarn com.example.Foo
./gradlew assembleReleaseTekrarlanmasın diye
Her kütüphane ekledikten sonra release derlemeyi bir kez al ki hata geç çıkmasın.
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
- 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ış
- ClassNotFound / NoSuchMethod çökmesi
- OutOfMemoryError çökmesi
- CLEARTEXT communication not permitted
- SecurityException: izin verilmedi