J'ai essayé d'ajouter ReactNative à mon Android Android. J'ai suivi les instructions du lien this . Je pourrais l'ajouter mais l'application se bloque une fois que j'ouvre le réagir à l'activité native. J'ai démarré le serveur en utilisant
adb reverse tcp:8081 tcp:8081
et a commencé à réagir natif en utilisant
react-native start
Je reçois un dialogue que les fichiers js sont en train de charger. Mais finalement, on se retrouve avec un crash. Voici l'erreur qui est imprimée dans 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)
Je suis complètement perdu car je n'arrive pas à comprendre la cause de ce problème.
Merci d'avance.
Cela est dû au problème suivant (ouvert pendant 2 ans) https://github.com/facebook/react-native/issues/2814
De l'émission:
React Native sur Android ne fournit pas de version 64 bits de la bibliothèque native
libreactnativejni.so
, Ce qui peut entraîner des problèmes de compatibilité sur les appareils 64 bits. J'ai rencontré cela en tentant d'intégrer React Native à une grande application existante que je suis en train de développer.
Réaction de Facebook:
" Merci d'avoir signalé! Oui, nous ne fournissons pas la version 64 bits du code natif et le système devrait toujours revenir à 32 bits."
Et:
" La plupart des projets Android utilisent un certain nombre de bibliothèques tierces, et celles qui incluent du code natif 64 bits entraîneront l'échec de React Native."
La réponse SO suivante tiliser des bibliothèques jni 32 bits sur Android 64 bits explique le retour aux bibliothèques 32 bits et le fait que vous ne pouvez pas mélanger. Donc, si 64 bits est trouvé, tout devrait être 64 bits
Je suggère de lire le numéro de Github # 2814. Il existe plusieurs correctifs proposés, mais cela dépend de votre situation ce qui fonctionne.
L'émetteur a également écrit un blog à ce sujet: Mixing 32- and 64-bit Dependencies in Android
J'espère que cela t'aides!
Cela a résolu mon problème:
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
Cela devrait être placé build.gradle
section defaultConfig.