He estado tratando de agregar ReactNative a mi aplicación de Android existente. Seguí las instrucciones de este enlace. Podría agregarlo, pero la aplicación se bloquea una vez que abro la actividad nativa de reacción. He comenzado a usar el servidor
adb reverse tcp:8081 tcp:8081y comencé a reaccionar de forma nativa usando
react-native startRecibo un diálogo de que los archivos js se están cargando. Pero finalmente termina con un accidente. El siguiente es el error que se está imprimiendo en logcat:
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:213) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:178) at com.facebook.react.bridge.JSCJavaScriptExecutor.<clinit>(JSCJavaScriptExecutor.java:19) at com.facebook.react.ReactInstanceManager.onJSBundleLoadedFromServer(ReactInstanceManager.java:413) at com.facebook.react.ReactInstanceManager.createReactContextInBackground(ReactInstanceManager.java:236)Estoy completamente perdido ya que no puedo averiguar la causa de este problema.
Gracias por adelantado.
en realidad, en mi caso, estos pasos funcionaron:
Metro Bundler./gradlew clean en el directorio de Androidreact-native run-androidEspero ayudarte.
Esto ha solucionado mi problema:
ndk { abiFilters 'armeabi-v7a', 'x86' } Esto debe colocarse en la sección build.gradle defaultConfig.
Esto se debe al siguiente problema (abierto durante 2 años) https://github.com/facebook/react-native/issues/2814
Del problema:
React Native en Android no proporciona una versión de 64 bits de la biblioteca nativa
libreactnativejni.so, lo que puede causar problemas de compatibilidad en dispositivos de 64 bits. Me encontré con esto al intentar integrar React Native con una gran aplicación existente que estoy desarrollando.
Reacción de Facebook:
" ¡Gracias por informar! Sí, no proporcionamos la versión de 64 bits del código nativo y el sistema siempre debe recurrir a 32 bits".
Y:
" La mayoría de los proyectos de Android usan varias bibliotecas de terceros, y cualquiera que incluya código nativo de 64 bits hará que React Native falle. "
La siguiente respuesta de SO Use bibliotecas jni de 32 bits en Android de 64 bits explica el respaldo a las bibliotecas de 32 bits y el hecho de que no puede mezclar. Entonces, si se encuentra 64 bits, todo debería ser de 64 bits
Sugiero leer el número 2814 de Github. Hay varias soluciones propuestas, pero depende de su situación lo que funcione.
El emisor también ha escrito un blog al respecto: Mezclar dependencias de 32 y 64 bits en Android
¡Espero que esto ayude!