问题描述
我正在创建多个apk 对于每个 ABI
,我这样做是为每个apk分配单独的版本代码。
I am creating multiple apk's for each ABI
, I did this to assign separate version code to each apk.
ext.abiCodes = ['armeabi-v7a':1, mips:2, x86:3]
import com.android.build.OutputFile
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def baseAbiVersionCode =
project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
if (baseAbiVersionCode != null) {
output.versionCodeOverride =
baseAbiVersionCode * 1000 + variant.versionCode
}
}
}
这是我的 dafaultConfig
,下面的 versionCode
用于 UniversalApk
This is my dafaultConfig
, and the following versionCode
is for universalApk
defaultConfig {
versionCode 74
versionName "1.0.2"
}
我附上 versionCode
对于每个服务请求,我还将在其中一个活动中显示 versionCode
。所以我需要正确的 versionCode
来执行这些操作,我使用此代码来获取 versionCode
I append the versionCode
with each service request, I also display the versionCode
in one of the activity. So i need the correct versionCode
to perform these operations, I use this code to get versionCode
int versionCode = BuildConfig.VERSION_CODE;
现在的问题是,它显示 versionCode $ c $
defaultConfig
中声明的c>而不是实际代表构建的那个。
Now the problem is that, it displays the versionCode
that is stated in defaultConfig
and not the one that actually represents the build.
我需要知道如何获取分配给此版本的 versionCode
大于 1000
的数字,而不是 dafaultConfig
I need to know that how can i get the versionCode
that is assigned to this build, that may be some number greater than 1000
, and not the one that is assigned in dafaultConfig
推荐答案
要检查版本代码,可以使用PackageInfo和PackageManager
To check version code you can use PackageInfo and PackageManager
try {
PackageInfo pInfo = this.getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName; //version name
int verCode = pInfo.versionCode; //version code
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
这篇关于如果我们使用多个APK,BuildConfig.VERSION_CODE是否不会更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!