android - 现有应用程序中的 React Native 更新版本
问题描述
我在 Play Store 上有非常大的应用程序,在 React Native 和 Android 上的代码非常复杂。大多数 android 库代码都是根据这个应用程序的要求定制的。现在我想在 Play 商店中更新我的应用程序,但为此我需要使我的应用程序与 64 位兼容,因为 Google Play 根据新政策不接受我的应用程序。
我google了一下,发现我需要将React Native版本更新到0.59.0。我刚刚将 package.json 文件中的 React Native 版本从 0.57.7 更改为 0.59.8。并在我的应用程序级 build.gradle 文件中添加了以下代码:
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
但是在这里,当我运行应用程序时添加上述代码后,它在启动时崩溃并出现以下错误消息:
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: couldn't find DSO to load: libglog_init.so caused by: couldn't find DSO to load: libglog.so caused by: couldn't find DSO to load: libgnustl_shared.so caused by: dlopen failed: "/data/data/com.m_naira/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:703)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:564)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:500)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:455)
at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:18)
at com.facebook.react.bridge.NativeMap.<clinit>(NativeMap.java:19)
at com.facebook.react.bridge.JSCJavaScriptExecutorFactory.create(JSCJavaScriptExecutorFactory.java:21)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:917)
at java.lang.Thread.run(Thread.java:764)
这是我的 package.json 中的一段代码:
"dependencies": {
"axios": "^0.18.0",
"moment": "^2.22.2",
"react": "16.6.3",
"react-image-mapper": "0.0.14",
"react-native": "^0.59.8",
"react-native-animatable": "^1.3.0",
"react-native-autocomplete-input": "^3.6.0",
"react-native-camera": "^1.9.2",
"react-native-contacts": "^2.2.4",
"react-native-customized-image-picker": "^0.1.4",
"react-native-datepicker-dialog": "0.0.9",
}
我不知道如何使用 react native 更新过程,因为它对现有应用程序有害。请让我知道对此的可行解决方案是什么。任何帮助将不胜感激。
解决方案
最好使用rn-diff-purge将您的 react-native 版本更新到最后一个版本,根据您现有的 react-native 版本,有一个表格,您点击最后一个版本。之后你更新你的库并处理不推荐使用的东西
推荐阅读
- sql - 如何在sql中获取最近3天的数据
- sql-server - FreeTDS 和 unixodbc 安装和配置
- angular - 如何在 TypeScript 中使用附加属性扩展 fabric.Object
- javascript - 类型上不存在属性“defaultProps”
- python - 替换 Pandas 数据框中的值
- asp.net - 点网中数据的长期加密
- python - Mask-RCNN 项目
- android - 如何在android中正确运行多个线程进行api调用?
- matlab - MATLAB R2019a 中的 contourf 函数中的“ShowText”和“LineStyle”之间存在冲突吗?
- javascript - 扩展语法和手动分配属性之间的区别