APKs版本不正确在人行横道为32位和64位平台上构建多个APK时的代码顺序 [英] Incorrect APKs versionCode order when building multiple APKs for both 32bit and 64 bit platforms with crosswalk

查看:146
本文介绍了APKs版本不正确在人行横道为32位和64位平台上构建多个APK时的代码顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为32位(armeabi-v7a和x86)和64位(arm64-v8a和x86_64)平台构建ionic / cordova应用程序。我使用命令 ionic build android --release ionic build android --release --xwalk64bit 命令构建四个单独的APK b $ b一切顺利,但versionCode(用于版本设置为0.0.11的版本)略有偏离-见下文

I need to build the ionic/cordova application for both 32bit (armeabi-v7a and x86) and 64bit (arm64-v8a and x86_64) platforms. I build four separate APKs using commands ionic build android --release and ionic build android --release --xwalk64bit All goes well except that the versionCode (for version set to 0.0.11) is a little off - see below

问题是x86和x86_64必须具有比ARM apk更高的versionCode。这是必需的,因为x86设备能够处理ARM库,但是没有ARM设备能够处理x86库。因此,我们必须保持x86 APK的版本代码高于ARM apk的版本代码,并且正确的APK将进入正确的设备。

The problem is that x86 and x86_64 must have higher versionCode then ARM apks. This is required because x86 devices are able to handle ARM libs but there is no ARM device able to handle x86 libs. So we must keep the version code of x86 APK higher than the one of ARM apk, and the right APK will go to the right device.

这就是我寻找(以及我最终设法创建的东西)-参见下面

Here is what I'm looking for (and what I finally managed to create) - see below

问题是设置了versionCode由 build.gradle 进行了修改,并由 crosswalk mobile-xwalk.gradle 进行了修改,从而使用上述构建方法给出了错误的版本。我尝试在 config.xml 中使用 android-versionCode 参数并为build.gradle使用 cdvVersionCode 来设置versionCode(请参见 http://cordova.apache.org/docs/ zh / 6.x / guide / platforms / android / index.html#configuring-gradle ),但没有运气。

The problem is that the versionCode is set by both build.gradle and modified by crosswalk mobile-xwalk.gradle which gives the wrong versions using my build approach described above. I tried to set the versionCode using android-versionCode param in config.xml and using cdvVersionCode for build.gradle (see http://cordova.apache.org/docs/en/6.x/guide/platforms/android/index.html#configuring-gradle) but no luck.

我最终解决了这个问题通过手动更改 mobile-xwalk.gradle 为64位apk设置正确的versionCode(如我的第二个屏幕截图所示)。这对我来说似乎不是最佳解决方案

I end up to fix the problem by manually changing mobile-xwalk.gradle to set the correct versionCodes for 64bit apks (as shown on my second screenshot). This does not look like the optimal solution for me

问题-有更好的方法来解决此问题吗?

Question - are there any better way to approach this problem?

推荐答案

在cordova-plugin-crosswalk-webview中似乎有一个错误。
此代码部分来自platform / android / build.gradle(用于构建32位):

It seems there is a bug in cordova-plugin-crosswalk-webview. This code part from platforms/android/build.gradle (used to build 32-bit):

productFlavors {
        armv7 {
            versionCode defaultConfig.versionCode*10 + 2
            ndk {
                abiFilters "armeabi-v7a", ""
            }
        }
        x86 {
            versionCode defaultConfig.versionCode*10 + 4
            ndk {
                abiFilters "x86", ""
            }
        }
        all {
            ndk {
                abiFilters "all", ""
            }
        }
    }

这是 versionCode * 10 ,如图所示...该代码部分来自platform / android / cordova-plugin-crosswalk-webview / YOUR_APP_SUFFIX -xwalk.gradle(用于构建64位):

here is versionCode*10 as seen... And this code part from platforms/android/cordova-plugin-crosswalk-webview/YOUR_APP_SUFFIX-xwalk.gradle (used to build 64-bit):

productFlavors {
            x86_64 {
                versionCode defaultConfig.versionCode + 6
                ndk {
                   abiFilters "x86_64", ""
                }
            }
            arm64 {
                versionCode defaultConfig.versionCode + 9
                ndk {
                    abiFilters "arm64-v8a", ""
                }
            }
        }

,这里只是 versionCode 。所以我通常将第二个文件更改为versionCode * 10来解决PlayMarket问题

and here is just versionCode. So I usually change second file to versionCode*10 to solve PlayMarket issues

这篇关于APKs版本不正确在人行横道为32位和64位平台上构建多个APK时的代码顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆