Я только что создал новый реактивный проект (0.62). Запуск отладочной сборки fre sh работает просто отлично.
Я настроил подпись, следуя документации: https://reactnative.dev/docs/signed-apk-android, и убедился, что я использую следующие ABI: "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
.
Чтобы проверить сборку релиза, я запускаю следующее: npx react-native run-android --variant release
Проблема
После выполнения вышеуказанной команды приложение пытается запуститься и сразу завершается с следующая трассировка стека:
--------- beginning of crash
2020-05-01 09:34:26.707 19961-19976/? E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: <BUNDLE_ID>, PID: 19961
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:789)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:525)
Конечно, когда я распаковываю APK, в /lib/x86_64
нет libhermes.so (я сейчас тестирую на API 2 пикселя 2).
Я не уверен, почему hermes не был включен для начала, но просто чтобы убедиться, что я установил следующее в своем build.grade:
project.ext.react = [
enableHermes: true, // clean and rebuild if changing
]
Теперь после очистки и сборки я вижу libhermes.so
. К сожалению, я все еще вижу ту же самую проблему. Но я вижу, что файл существует.
На данный момент, я застрял. Я проследил несколько потоков, сообщающих об одной и той же проблеме (например, this ). Похоже, основная проблема с soloader была исправлена и используется с последней версией кода native. Хотя я использую последнюю версию RN, я все еще вижу эту проблему.
Вопрос
Не очень хорошо знаком с разработкой Android, какие шаги я мог бы предпринять, чтобы исследовать это выдать дальше?