web-dev-qa-db-fra.com

React-Native: Java.lang.UnsatisfiedLinkError: impossible de trouver DSO à charger: libhermes.so

Je viens de mettre à jour mon projet pour utiliser la version native de react 0.60.2 . Mais lorsque j'essaie d'exécuter une application sur un appareil Android, elle se bloque après l'écran de lancement. J'ai les journaux d'erreurs suivants:

E/AndroidRuntime: FATAL EXCEPTION: create_react_context
    Process: com.tjspeed, PID: 3909
    Java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.Java:738)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.Java:591)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.Java:529)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.Java:484)
        at com.facebook.hermes.reactexecutor.HermesExecutor.<clinit>(HermesExecutor.Java:20)
        at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.Java:27)
        at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.Java:949)
        at Java.lang.Thread.run(Thread.Java:760)

Quelques suggestions disponibles ici: https://github.com/facebook/react-native/issues/25601 mais malheureusement aucune n'a fonctionné pour moi. Veuillez suggérer la solution de contournement.

59
V-Xtreme

Dans mon cas, il suffit d'activer le enableHermes dans app/build.gradle:

project.ext.react = [
    entryFile   : "index.js",
    enableHermes: true,  // HERE!
]
0
lfree

Essayez de remplacer votre objet ndk dans app/build.gradle

defaultConfig {
...
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
0
user3571779

J'ai eu cette erreur lorsque j'essayais de courir avec une ancienne version de React Native, avant 0.60 alors que dans le package.json avait une version plus récente définie (post 0.60).

0
Sir Codesalot

Dans mon cas, Hermes n'a jamais été activé et pourtant j'ai rencontré cette erreur. Le nettoyage (via Android Studio) et la reconstruction ont résolu l'erreur.

0
Isaac Overacker