我之前一直使用RN V0.63.3,但遇到了构建失败的问题。于是我将版本更改为0.63.5并成功构建。但现在在开发模式下,我的应用程序在构建后立即崩溃。
错误日志如下:
java.lang.UnsatisfiedLinkError: 找不到要加载的DSO:libturbomodulejsijni.so SoSource 0: com.facebook.soloader.ApkSoSource[root = /data/user/0/com.zcarpet/lib-main flags = 1] SoSource 1: com.facebook.soloader.DirectorySoSource[root = ...
我升级了gradle版本从3.5.2到3.5.3,并尝试了以下解决方法:
- 在\Android\build.gradle中使用以下代码:
configurations.all {
resolutionStrategy {
force "com.facebook.react:react-native:0.63.5"
}
}
在\Android\build.gradle文件中添加以下代码:
project.ext.react = [
enableHermes: false, // clean and rebuild if changing
deleteDebugFilesForVariant: { false }
]
- 许多其他修复措施都无法解决...
我的项目配置:
buildscript {
ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
}
repositories {
google()
mavenCentral()
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath("com.android.tools.build:gradle:3.5.3")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
if (useIntlJsc) {
implementation 'org.webkit:android-jsc-intl:+'
} else {
implementation 'org.webkit:android-jsc:+'
}
}
}
allprojects {
configurations.all {
resolutionStrategy {
force "com.facebook.react:react-native:0.63.5"
}
}
repositories {
google()
jcenter()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
maven { url 'https://s3.amazonaws.com/repo.commonsware.com' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url 'https://www.jitpack.io' }
maven { url "https://maven.google.com" }
google()
maven { url 'https://www.jitpack.io' }
}
// Workaround for https://issuetracker.google.com/117900475
// Remove when upgrading to AGP 3.4 or higher.
configurations.matching { it.name == '_internal_aapt2_binary' }.all { config ->
config.resolutionStrategy.eachDependency { details ->
details.useVersion("3.5.0-alpha03-5252756")
}
}
}
implementation jscFlavor
引起的,当我启用Hermes时,错误会变成“支持Hermes的错误”。 - Navid Asadi