我们开始拆分APK以减少APK尺寸。我们无法弄清楚为什么我们在代码(Java)中获得的versionCode
始终是默认值。
以下是相关的gradle:
defaultConfig {
applicationId applicationIdPrefix
versionCode 1000
versionName "3.3.0"
// This is the configuration we want to publish
defaultPublishConfig "productionRelease"
applicationVariants.all { variant ->
def apkName = "$projectName-${variant.name}-v${versionString}.${baseVersionCode}.apk"
variant.outputs.each { output ->
// Redefine the versionCode and the apkName to include ABI when available
def abiName = output.getFilter(OutputFile.ABI)
def baseAbiVersionCode = project.ext.abiCodes.get(abiName)
if (baseAbiVersionCode != null) {
output.versionCodeOverride = variant.versionCode + baseAbiVersionCode
output.versionNameOverride = "$versionString (${output.versionCodeOverride})"
这是检索versionName
和versionCode
:
BuildConfig.VERSION_NAME
BuildConfig.VERSION_CODE
它们总是3.3.0和1000.为什么?我们希望获得这些值,因为我们希望在设置下显示它们。
答案 0 :(得分:0)
简而言之,改为此问题已解决:
BuildConfig.java
在我们拆分APK之后,以下内容未向我们提供正确的版本名称和版本代码。我想发生的事情是String versionName = BuildConfig.VERSION_NAME;
int versionCode = BuildConfig.VERSION_CODE;
是在成绩同步期间生成的。
output.versionCodeOverride = variant.versionCode + baseAbiVersionCode
output.versionNameOverride = "$versionString (${output.versionCodeOverride})".
也许这就是为什么它已经过时而且与我们的实际版本代码不符,后者用这两行gradle覆盖:
public ActionResult TestCrypto()
{
string encryptedText = Crypto.Encrypt("123456");
string text = "Encrypted Text : " + encryptedText + "<br/>";
string originalText = Crypto.Decrypt(encryptedText);
text += "Origial Text : " + originalText;
return Content(text);
}