![](/img/trans.png)
[英]This release is not compliant with the Google Play 64-bit requirement error
[英]This release is not compliant with the Google Play 64-bit requirement error still after adding libraries
我正在 Play 商店上传一个视频编辑器应用程序,该应用程序具有带有一些本机代码的库。 所以我通过将它添加到 gradle 使其兼容 64 位。
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
添加它仍然问题没有解决。 当我在 Playstore 上传时,它仍然出现 64 位错误。 这是我的毕业证
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.maam.videoeditor"
minSdkVersion 17
targetSdkVersion 28
versionCode 5
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation "com.android.support:customtabs:28.0.0"
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}
我在 gradle 中添加了 64 位行,但在上传 64 位不合规错误显示。 请指导解决这个问题。
@Osama:首先,请检查您的 apk 文件是否有 64 位库。 有很多方法可以做到这一点: - 使用 Android Studio 的分析 Apk 功能(更多详细信息,请参阅: https : //developer.android.com/distribute/best-practices/develop/64-bit ) - 存档您的 apk文件并检查该文件夹内。 如果您的应用程序没有文件夹“arm64-v8a”,则意味着您的应用程序版本仍未达到 64 位。
关于您的要求,如果您希望您的应用程序支持 64 位架构,您还必须将您的本机库(.so 文件)版本升级到 64 位。
关于你的代码:
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'"
我不建议你添加这个,除非你使用 Android Studio 的 AppBundle 新功能。 因为当你使用它时,将为每个架构创建4个新的apk文件。 如果你上传 arm64-v8a 架构的文件,错误会消失,但它会通知你你的 apk 支持的设备比以前的版本少,因为它不支持 32 位设备。
这个问题有两种可能的解决方案:
把所有的库文件放到你的 apk 文件中,它会让你的应用程序更大,但它会让你的应用程序支持所有设备。
为您的项目应用 AppBundle。 有关这方面的更多详细信息,请查看此链接: https : //android.jlelse.eu/a-practical-guide-to-android-app-bundle-for-beginners-7e8d93831828
android {
compileSdkVersion 29
defaultConfig {
-----
-----
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
packagingOptions {
exclude 'lib/armeabi-v7a/libvudroid.so'
exclude 'lib/x86/libvudroid.so'
exclude 'lib/arm64-v8a/libvudroid.so'
}
Google已在稳定的渠道中发布了Flutter 1.7.8 + hotfix.3,可轻松构建要发布的应用程序。
现在,您有两个选择可以构建:
产生应用程式套件
运行flutter build appbundle
这将创建<app dir>/build/app/outputs/bundle/release/app.aab
T app捆绑包包含Dart代码和为armeabi-v7a
(32位)和arm64-v8a
(64位)编译的Flutter运行时。
现在,您可以将此应用捆绑包上传到Google Play。
建立一个APK
flutter build apk --split-per-abi
此命令产生两个APK文件:
<app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
<app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk
删除--split-per-abi标志将导致显示一个胖APK,其中包含为所有目标ABI编译的代码。 此类APK的大小要大于拆分后的对应文件,导致用户下载不适用于其设备架构的本机二进制文件。
如果您尚未升级到Flutter 1.7,则下面的解决方案仍然可以使用。
您需要构建两个apk并将其一起上传。 一个用于32位,另一个用于64位。
这是我对flutter v1.5.4-hotfix.2的工作原理
首先运行flutter build apk --release
并上传apk文件
然后在pubspec.yml文件中增加版本和内部版本号并运行
flutter build apk --release --target-platform=android-arm64
上载此新apk并开始推出。
祝好运
从我的情况来看,谷歌支持团队的回答是,这是由于上传了较旧的(旧版)版本构建(不符合 64 位要求),在上传新版本时将其包含在“上一个版本”部分应用。
您需要将以下内容添加到您的 android/app/build.gradle 文件中:
android {
defaultConfig {
....
....
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
}
将以下内容添加到您的 android/build.gradle 文件中:
subprojects {
afterEvaluate {project ->
if (project.hasProperty("android")) {
android {
.....
.....
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
}
}
}
}
}
这是为了包括 64 位架构。 如果不是这样,那么您可能需要创建应用程序包然后上传
如果您在 alpha 版本上上传您的 apk 并且会显示此错误,因此请检查任何退出的 apk 是否已上线,如果没有,请删除您的旧 apk 并上传您的新 apk。
我想你的问题已经解决了。
我遇到了同样的情况...我的应用程序既不是游戏也不是跨平台应用程序...我遇到过这种情况...解决方案很简单...我的一个应用程序依赖(由gradle实现的库)正在使用ndk ...我删除它后,问题就消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.