![](/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.