如何解决 Google 在 AAB 版本中播放 64 位错误?
How to resolve Google Play 64 bit error in AAB release?
我从 2 天前就开始尝试上传 apk。每次我上传 apk 时,我都会收到 64 位错误。我知道 Whosebug 上还有其他问题问同样的事情。但是他们中的大多数人都说了 flutter 的解决方案。
根据Google Documentation I used APK Analyze,发现我的项目中有.so文件。
根据我添加的文档 ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
。但是我仍然得到同样的错误。
请检查我的 build.gradle 代码。
android {
compileSdkVersion 29
buildToolsVersion '29.0.0'
defaultConfig {
applicationId "com.XXXXX"
minSdkVersion 15
targetSdkVersion 29
versionCode 237
versionName "3.3.20"
multiDexEnabled true
//ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86_64' - not worked
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
applicationVariants.all { variant ->
variant.resValue "string", "versionName", variant.versionName
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
flavorDimensions "default"
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
jumboMode true
javaMaxHeapSize "4g"
}
productFlavors {
production {
applicationId 'com.XXXXX'
}
staging {
applicationId 'com.XXXXX.staging'
}
}
// Add this block and enable/disable the parameters as follows
bundle {
density {
// Different APKs are generated for devices with different screen densities; true by default.
enableSplit true
}
abi {
// Different APKs are generated for devices with different CPU architectures; true by default.
enableSplit true
}
language {
// This is disabled so that the App Bundle does NOT split the APK for each language.
// We're gonna use the same APK for all languages.
enableSplit false
}
}}
请帮我解决问题。
创建签名包 apk 后,.so 文件在 armeabi-v7a、arm64-v8a、x86、x86_64 文件夹中显示相同。
如果你说你 "found that there are .so files" 我假设你的项目没有编译而只是使用它们。然后,您需要此原生库,用于生成此库的 NDK 项目中缺少的体系结构。它不能仅通过项目中的不同配置来完成。
无需添加此行ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'(删除此行)
请将此代码添加到您的 build.gradle 文件中
-发布 Apk 后,您的发布文件夹中有 2 个 apk 文件
-现在您可以使用 app-arm64-v8a-release.apk 发布 Playstore
-希望对你有用
android {
lintOptions{
....
}
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a'
universalApk false
}
}
}
嗨,朋友,我有另一种构建 32 位和 64 位版本应用程序或捆绑包的方法。
请将此代码添加到您的 build.gradle 文件
defaultConfig {
applicationId "com.XXXXX"
minSdkVersion 15
targetSdkVersion 29
versionCode 237
versionName "3.3.20"
multiDexEnabled true
ndk {
abiFilters 'arm64-v8a', 'x86_64'
}
}
注意:去掉下面的函数
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a'
universalApk false
}
}
我尝试了很多解决方案但都没有用。后来我发现游戏控制台版本中存在 RETAINED APK 并且具有 32 位。然后我停用了它并上传了新的 apk & 它成功地工作了
我从 2 天前就开始尝试上传 apk。每次我上传 apk 时,我都会收到 64 位错误。我知道 Whosebug 上还有其他问题问同样的事情。但是他们中的大多数人都说了 flutter 的解决方案。
根据Google Documentation I used APK Analyze,发现我的项目中有.so文件。
根据我添加的文档 ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
。但是我仍然得到同样的错误。
请检查我的 build.gradle 代码。
android {
compileSdkVersion 29
buildToolsVersion '29.0.0'
defaultConfig {
applicationId "com.XXXXX"
minSdkVersion 15
targetSdkVersion 29
versionCode 237
versionName "3.3.20"
multiDexEnabled true
//ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86_64' - not worked
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
applicationVariants.all { variant ->
variant.resValue "string", "versionName", variant.versionName
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
flavorDimensions "default"
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
jumboMode true
javaMaxHeapSize "4g"
}
productFlavors {
production {
applicationId 'com.XXXXX'
}
staging {
applicationId 'com.XXXXX.staging'
}
}
// Add this block and enable/disable the parameters as follows
bundle {
density {
// Different APKs are generated for devices with different screen densities; true by default.
enableSplit true
}
abi {
// Different APKs are generated for devices with different CPU architectures; true by default.
enableSplit true
}
language {
// This is disabled so that the App Bundle does NOT split the APK for each language.
// We're gonna use the same APK for all languages.
enableSplit false
}
}}
请帮我解决问题。
创建签名包 apk 后,.so 文件在 armeabi-v7a、arm64-v8a、x86、x86_64 文件夹中显示相同。
如果你说你 "found that there are .so files" 我假设你的项目没有编译而只是使用它们。然后,您需要此原生库,用于生成此库的 NDK 项目中缺少的体系结构。它不能仅通过项目中的不同配置来完成。
无需添加此行ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'(删除此行)
请将此代码添加到您的 build.gradle 文件中
-发布 Apk 后,您的发布文件夹中有 2 个 apk 文件
-现在您可以使用 app-arm64-v8a-release.apk 发布 Playstore
-希望对你有用
android {
lintOptions{
....
}
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a'
universalApk false
}
}
}
嗨,朋友,我有另一种构建 32 位和 64 位版本应用程序或捆绑包的方法。
请将此代码添加到您的 build.gradle 文件
defaultConfig {
applicationId "com.XXXXX"
minSdkVersion 15
targetSdkVersion 29
versionCode 237
versionName "3.3.20"
multiDexEnabled true
ndk {
abiFilters 'arm64-v8a', 'x86_64'
}
}
注意:去掉下面的函数
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a'
universalApk false
}
}
我尝试了很多解决方案但都没有用。后来我发现游戏控制台版本中存在 RETAINED APK 并且具有 32 位。然后我停用了它并上传了新的 apk & 它成功地工作了