Hermes: yalnızca release'te JS hatası
Hata metni
E/ReactNativeJS: TypeError: undefined is not an object (evaluating 'a.b.c') Hermes: Execution of bytecode failed in release build only
Neden
Debug'da çalışan uygulama release'te kırılır. Release'te kod küçültülür, __DEV__ kapanır ve Hermes bytecode çalışır.
Adım adım çözüm
adb logcatile gerçek hata metnini çıkar.--dev falseile bundle üretip aynı hatayı tekrarla.- Yalnız debug'da olan şeylere (
__DEV__, dev menüsü) bağlı kodu kontrol et. - Şüpheli kütüphaneyi güncelle: Hermes ile uyumlu sürüm gerekir.
- Source map ile hata satırını gerçek koda çevir.
Örnek komutlar
adb logcat -s ReactNativeJS:V ReactNative:V npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output /tmp/i.bundle --sourcemap-output /tmp/i.map cd android && ./gradlew assembleRelease
Tekrarlanmasın diye
Release APK'yı son gün değil, her hafta gerçek telefonda 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
- 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