【问题标题】:Apk crashes after adding realm to react native添加领域以响应本机后,Apk 崩溃
【发布时间】:2020-02-20 19:38:06
【问题描述】:

提前致谢。

我尝试在 react native 上安装 Realm 3.3.0,并在应用打开时生成构建后崩溃。我用

"react": "16.8.6",
"react-native": "0.60.5"

我的毕业生是

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 21
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.4.1")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

我放了日志猫,我得到了以下内容;

beginning of crash
2019-10-24 18:07:16.929 11412-11498/com.xxxxx.xxxxx E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.xxxx.xxxxx, PID: 11412
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: librealmreact.so caused by: dlopen failed: library "libjsc.so" not found
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 io.realm.react.RealmReactModule.<clinit>(RealmReactModule.java:56)
at io.realm.react.RealmReactPackage.createNativeModules(RealmReactPackage.java:31)
at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.java:42)
at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.java:41)
at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1215)
at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1185)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1123)
at com.facebook.react.ReactInstanceManager.access$900(ReactInstanceManager.java:124)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:948)
at java.lang.Thread.run(Thread.java:764)

有没有办法解决这个问题??

【问题讨论】:

  • 你是如何添加领域的?您添加领域的步骤是什么?哪个版本的境界? IOS上会不会出现同样的情况?
  • @cutiko 1) npm install --save realm 2) react-native link realm 3) 在设置 gradle 中添加了项目 4) 在 build.gradle 中添加了实现。 5) 修改MainApplication.java 构建成功,打开应用时崩溃。
  • @cutiko in package json 我有 "realm": "^3.0.0",我用 3.3.0 也试过了
  • @cutiko 我只用安卓。

标签: android react-native realm


【解决方案1】:

我在日常工作中使用realm,我遇到这个问题是因为realm还不支持hermes引擎,看到这个issue,你需要在文件android/app/build中将enableHermes更改为false。分级

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,
]

如果您使用的是 0.60.0 或更高版本,安装领域的步骤是

  1. npm i realm

  2. npx react-native link realm,领域的自动链接还没有工作,是的,你需要用命令手动链接

  3. npx jetify

无需编辑 MainAplication.java 或其他文件来链接更多

【讨论】:

  • 当我把爱马仕设置为假时,我得到java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
  • @AnkitJayaprakash 是您的项目从 0.5x.y 升级到 0.6x.y 版本吗?然后看到这个stackoverflow.com/questions/57036317/…可能你没有正确升级它
猜你喜欢
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多