android - react native : Version code too big for Android using enableSeparateBuildPerCPUArchitecture

标签 android react-native google-play

我正在编译我的 Android 版 React Native 应用程序,将 enableSeparateBuildPerCPUArchitecture 设置为 false,但因为我读到如果我设置为 true,那么应用程序将减少大约 4mb,这是真的。

所以我当前的版本代码是 9,所以我将新版本设置为 10,当我创建一个新版本并将该选项设置为 true 时,我将其上传到我的 Google Play 信息中心,然后我意识到了新版本版本代码不是 10 而是 1048586 :/

幸运的是我没有发布那个版本,我只是删除了它,但我想知道发生了什么,这是否正常,如果我在那之后创建一个新版本,这个数字将只创建 1 个单元,比如 1048586 到 1048587?

谢谢!

编辑

我找到了设置版本号的那行代码

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

但是我仍然找不到为什么需要将版本代码增加到一个大数字的真正原因

最佳答案

“我们需要这个,因为 ABI 中的每个 APK 都需要一个单独的版本代码,每次应用程序更新时该版本代码都会增加。此代码块为每个体系结构添加一个不同的常量到您的基本版本代码。然后每个 APK 都有自己独特的不太可能重叠的值。有关更多详细信息,请查看 ABI 拆分的 Android 文档。”

https://reactnative.thenativebits.com/courses/upgrading-react-native/upgrade-to-react-native-0.59/

因此,您需要将对版本代码的控制权“放弃”给构建系统,转而依赖于版本名称。

关于android - react native : Version code too big for Android using enableSeparateBuildPerCPUArchitecture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43965813/

相关文章:

android - ScrollView React Native 上的多个 onScroll 事件?

android - 在两列上创建 UNIQUE 约束(仅当两者都存在于数据库中时)。如果其中一列不同,我不想限制它

java - 在 Android 中从 JSON 文件生成菜单项

java - 从 XML 扩充可绘制对象

javascript - If-Modified-Since 被 fetch API 忽略

android - Unity 5.6为Play商店针对64位版本构建APK

reactjs - 样式表中的平台条件语句(react-native)

react-native - 来自 Google Play 商店的隐式 PendingIntent 漏洞错误

android - OpenCV Manager(在 google play 中找不到)+ 很难在 Oreo 中安装

google-play - 如何分发仅供员工内部使用的应用程序