正如标题所示,我在Play商店中拥有一个应用程序,该应用程序似乎是作为当前版本的较旧版本分发的,但仅适用于arm64-v8a ABI。在很长一段时间内,这是一个很大的版本差异,所以这不仅仅是我不允许发布时间完成。同样奇怪的是,我可以通过Play商店下载我的应用程序,同时可以通过该应用程序附带的开发者帐户进行身份验证。我以为这是不允许的?看来我也可以给我的应用留下评论,这很奇怪。
我认为这可能与今天早些时候设备上的LineageOS 15.1闪烁有关,但我无法进行验证。
其他信息:
每个ABI生成版本代码的等级条目:
ext.abiCodes = [
// Ignoring mips and armeabi
'armeabi-v7a': 2,
'arm64-v8a' : 3,
'x86' : 4,
'x86_64' : 5
]
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 * 10000000 + variant.versionCode
}
}
}
我最大的担心是我在分配某些ABI时感到烦恼,但我希望情况并非如此,因为我可以通过开发者控制台下载并安装正确的APK。由于我在Google Play应用中遇到的奇怪问题,我希望这与我今天所做的Flash更加相关。
是什么导致为此ABI分发错误版本的APK?我很乐意提供其他信息。任何帮助将不胜感激!
更新:
发布此问题后,我将gradle迁移到新的应用程序捆绑包中,它似乎已解决了该体系结构的分发问题。我不确定为什么它可以解决问题,因为开发人员控制台中仍然列出了适用于该架构的APK,效果很好。但是,我将保留这个问题,因为我认为这应该适用于ABI拆分。以下是我的更新gradle配置:
应用插件:“ com.android.application” 应用插件:“ kotlin-android” 应用插件:“ kotlin-android-extensions” 应用插件:“ kotlin-kapt” 应用插件:“ com.google.gms.google-services” 应用插件:“ io.fabric”
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.masterwok.bitcast"
minSdkVersion 16
targetSdkVersion 27
versionCode 50000039
versionName "2.1.10"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {
// Left blank for brevity..
}