我有适用于 Android 的 Flutter 应用程序(使用网络)。该应用程序在调试模式下工作。我创建 appbundle - 将控制台下载到 Google,然后下载通用 apk 文件(适用于所有平台)。但是当我从商店安装应用程序时(即针对特定设备-特定平台),应用程序的运行出现问题。 我设法在计算机上本地重现了这个问题:
看来问题也跟abi有关。这是我来自 build.gradle 的代码:
buildTypes {
release {
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.release
ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
debug {
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.release
ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
}
splits {
abi {
enable true //enables the ABIs split mechanism
reset() //reset the list of ABIs to be included to an empty string
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
universalApk true
}
}
..........
project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFileName = "myapp_" + variant.versionName + "_" + output.getFilter(com.android.build.OutputFile.ABI) + ".apk"
output.versionCodeOverride =
project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) *
1000000 + android.defaultConfig.versionCode
}
}
调试和发布的配置几乎相同。但是当我在调试中运行应用程序时。
我怎样才能明白错误的原因是什么? 我怎么能在调试模式下加入发布 apk - 但它可能是不可能的。
任何建议-我将不胜感激
考虑删除 x86 因为 flutter 不支持它。它将正常工作。
放这个:
release {
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.release
ndk.abiFilters 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
而不是这个:
release {
minifyEnabled false
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.release
ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
}
我解决了这个问题 - 将它添加到 gradle.properties
android.bundle.enableUncompressedNativeLibs=false