Как создать приложение, совместимое с 64-битным требованием Google Play?
После того, как я загрузил apk в play store, я получил следующее предупреждение. Какие изменения я должен сделать, чтобы выпустить сборку apk с flutter sdk для соответствия требованиям 64-бит?
Смотрите изображение, чтобы увидеть предупреждение.
https://pasteboard.co/Id8Vqoi.png
Ответы
Ответ 1
Ребята они изменили новые политики для 64-bit
архитектур. Поэтому, пожалуйста, поместите этот код в ваш gradle
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
например
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.test.test"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
Ответ 2
Edit/Update:
Google выпустил Flutter 1.7.8 + hotfix.3 в стабильном канале, что облегчает создание приложения для выпуска.
Теперь у вас есть два варианта сборки:
1. Пакет приложений (предпочтительно)
2. APK
Создание комплекта приложений
Запустите приложение flutter build appbundle
Это создаст <app dir>/build/app/outputs/bundle/release/app.aab
Пакет T app содержит ваш код Dart и среду выполнения Flutter, скомпилированные для armeabi-v7a (32-bit)
arm64-v8a (64-bit)
armeabi-v7a (32-bit)
и arm64-v8a (64-bit)
.
Теперь вы можете загрузить этот пакет приложений в 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 больше по размеру, чем их разделенные аналоги, что заставляет пользователя загружать собственные двоичные файлы, которые не применимы к архитектуре их устройств.
Если вы не обновились до версии 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 и начните развертывание.
Удачи
Ответ 3
Что сработало для меня
flutter build appbundle --release
Загрузите файл appbundle
Затем увеличьте версию и номер сборки в файле pubspec.yml и запустите
flutter build appbundle --release --target-platform=android-arm64
Загрузите также этот новый appbundle.
Тогда магазин игр принял мой релиз
Ответ 4
Теперь есть новое лучшее решение, предоставленное командой futter.
Вам необходимо использовать новую версию флаттера 1.7.12. (моя настройка)
Flutter 1.7.12-pre.40 • channel master • https://github.com/flutter/flutter.git
Framework • revision 3badcf51a4 (13 hours ago) • 2019-06-28 15:14:03 -0700
Engine • revision e96900df2f
Tools • Dart 2.4.0
Затем с помощью этой команды вы можете собрать свой (одиночный) комплект приложений для x86 и x64.
flutter build appbundle
Дополнительно вы можете добавить --release --target-platform android-arm,android-arm64
. Но это может привести к поломке приложения...
Ответ 5
Используйте последний мастер-канал Flutter. flutter build apk
приведет к созданию толстого APK, содержащего поддержку как 32-битных, так и 64-битных.
Чтобы создать 32-битный и 64-битный APK отдельно, используйте flutter build apk --split-per-abi
Ответ 6
Столкнулся с такой же проблемой 2 дня назад. Существует похожая проблема, поднятая на GitHut флаттера, но пока нет ответа.
Ответ 7
Я только что столкнулся с тем же предупреждением и обнаружил этот пост в блоге Google: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html Не очень подробно, но это обзор шагов, которым мы должны следовать
Ответ 8
Flutter 1.5.4 -h otfix.2 appbundle в настоящее время нацелен на android-arm, который создает только 32- flutter build appbundle -h
нативный код (flutter build appbundle -h
). Чтобы изменить это, запустите flutter build appbundle --target-platform=android-arm64
чтобы изменить цель по умолчанию.