NoClassDefFoundError com.facebook.react.bridge.WritableNativeMap
Estoy aleatoriamente recibiendo un accidente al intentar cargar un jsbundle (fuera de línea reacción de la aplicación)
mReactInstanceManager = ReactInstanceManager.builder().setApplication(mActivity.getApplication()) .setJSBundleFile(appPath) .addPackage(mReactPackage).addPackage(new MyCustomReactPackage()) .setUseDeveloperSupport(false)//For performance use false .setInitialLifecycleState(LifecycleState.RESUMED) .setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() { @Override public void handleException(Exception e) { e.printStackTrace(); Logger.e(TAG,"Exception while opening app "+ Log.getStackTraceString(e)); } }) .build(); reactRootView.startReactApplication(mReactInstanceManager, launchClassName, initialProps);
Stacktrace:
- ¿Es posible acceder a las funcionalidades NFC desde una aplicación React
- Error al llamar a Appregistry.runApplication en reactivo-nativo
- EXCEPCION INESPERADA DE NIVEL SUPERIOR (reactiva)
- Reaccionar Nativo Android: screenPhysicalPixels.width no está definido
- Cambiar el estilo predeterminado de un Navigator.NavigationBar (título)
LOCATION com.facebook.react.JSCConfig$1.a() EXCEPTION java.lang.NoClassDefFoundError MESSAGE com.facebook.react.bridge.WritableNativeMap at com.facebook.react.JSCConfig$1.a()(null:14) at com.facebook.react.ReactInstanceManager.k()(null:359) at com.facebook.react.ReactInstanceManager.j()(null:353) at com.facebook.react.ReactInstanceManager.c()(null:295) at com.facebook.react.ReactRootView.a()(null:221) at com.example.sdk.uidesign.fragments.AppFragment.b()(null:215) at com.example.sdk.uidesign.ActivityV2.a()(null:1265) at com.example.sdk.uidesign.adapter.AppsAdapter.a()(null:102) at com.example.sdk.uidesign.adapter.AppsAdapter.a()(null:37) at com.example.sdk.uidesign.ae$a$1.onClick()(null:135) at android.view.View.performClick()(View.java:4790) at android.view.View$PerformClick.run()(View.java:19883) at android.os.Handler.handleCallback()(Handler.java:739) at android.os.Handler.dispatchMessage()(Handler.java:95) at android.os.Looper.loop()(Looper.java:135) at android.app.ActivityThread.main()(ActivityThread.java:5268) at java.lang.reflect.Method.invoke()(Method.java:-2) at java.lang.reflect.Method.invoke()(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()(ZygoteInit.java:902) at com.android.internal.os.ZygoteInit.main()(ZygoteInit.java:697)
Cualquier ayuda sería apreciada.
- ¿Reaccionar nativo y Android?
- Reaccionar proceso de fondo nativo
- React Native en Android no encontró Herramientas de compilación
- React native Required Unknown Módulo para componente nativo personalizado
- ¿Puedo crear aplicaciones de Android con reactivos nativos?
- Reacciona las propiedades de textDecoration nativas que no funcionan en Android
- Undefined no es un objeto (evaluando '_reactNative.PropTypes.string') Error
- React Native: Cambia la ruta de acceso del archivo de entrada index.android.js a la ruta del archivo personalizado especificado
Android 5.1 tiene un límite arbitrario de 100 archivos dex
Aquí lo que podemos ver en runtime / dex_file.cc
bool DexFile::OpenFromZip(...) { ... while (i < 100) { std::string name = StringPrintf("classes%zu.dex", i) ... } ... }
Así que si tienes más de 100 archivos dex obtienes este NoClassDefFoundError.
Es posible evitar este error al inhabilitar la predexicación
Una solución posible es desactivar preDexLibraries, lo que reduce el número de archivos classes.dex incluidos en un apk.
Añadir
android { dexOptions { preDexLibraries false } }
Al archivo build.gradle de la aplicación
Java.lang.NoClassDefFoundError al ejecutar la aplicación con Android 5.1 con Android Studio 2.2RC
Actualización:
Parece que el problema real está relacionado con la carga de la biblioteca fbjni utilizando soloader. Finalmente solucionamos este problema precargando la biblioteca soloader
import com.facebook.soloader.SoLoader; @Override public void onCreate() { ... ... SoLoader.init(getApplicationContext(), /* native exopackage */ false); //SoLoader.loadLibrary("fbjni"); //uncomment this line if the issue is not resolved }
- ¿Cuál es el mejor lugar para almacenar claves secretas en una aplicación para Android?
- Uso de python3 en android con buildozer