首页 > 解决方案 > 现有应用程序中的 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 更新过程,因为它对现有应用程序有害。请让我知道对此的可行解决方案是什么。任何帮助将不胜感激。

标签: androidreact-native64-bitupdatesgoogle-play-console

解决方案


最好使用rn-diff-purge将您的 react-native 版本更新到最后一个版本,根据您现有的 react-native 版本,有一个表格,您点击最后一个版本。之后你更新你的库并处理不推荐使用的东西


推荐阅读