现有应用程序中的 React Native 更新版本
Posted
技术标签:
【中文标题】现有应用程序中的 React Native 更新版本【英文标题】:React Native update version in existing app 【发布时间】:2019-12-17 23:45:09 【问题描述】:我在 Play 商店中有非常大的应用程序,在 React Native 和 android 上的代码非常复杂。大多数 android 库代码都是根据这个应用程序的要求定制的。现在我想在 Play 商店中更新我的应用程序,但为此我需要使我的应用程序与 64 位兼容,因为 Google Play 不接受我的应用程序按照新政策。
我搜索了一下,发现我需要将 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 更新过程,因为它对现有应用程序有害。请让我知道对此的可行解决方案是什么。 任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:最好使用rn-diff-purge 将你的 react-native 版本更新到最新版本,这是最好的选择,根据你现有的 react-native 版本,有一个表格,你点击最后一个版本。之后你更新你的库并处理弃用的东西
【讨论】:
以上是关于现有应用程序中的 React Native 更新版本的主要内容,如果未能解决你的问题,请参考以下文章
React Native 与现有 Android 应用程序集成闪回
在现有项目 React-Native 中添加现有的原生项目 Android
在现有 iOS 应用程序中集成 react-native(0.40.0) 后未找到 yoga/Yoga.h 头文件
将焦点自动更改为 react native 中的下一个 TextInput
从 React-native-navigation v1 到现有项目的 react-native-navigation v2