Нативная конфигурация платформы Android - PullRequest
0 голосов
/ 10 октября 2018

[ОБНОВЛЕНИЕ]

Флаттер может поддерживать релиз APK только для 32 или 64 бит, но не для обоих

После тестирования на GalaxyПримечание 3, API-уровень 19 на firebase testLabs, который вылетал.Я решил проблему (по крайней мере, на данный момент), добавив

release {
    ndk{
         abiFilters "armeabi-v7a"    // not working for "armeabi", "x86"  
       }
 }

Затем я принудительно сгенерировал APK на вооружение, как показано:

flutter build apk --release --target-platform android-arm

, и это сработало!

Для свойства Gradle можно задать значение android-arm (по умолчанию) или android-arm64 , но не оба


[Вопрос]

Как настроить мой код для работы на всех собственных платформах, таких как "armeabi", "armeabi-v7a", "armeabi-v8a", "x86", "x86_64", "mips" .. и других архитектурах.(необходимо поддерживать все платформы)

Причина в том, что я хочу загрузить версию обновления для существующего приложения в Google Play, которое имеет "Native platform = none", поэтому мое приложение должно иметь те же зависимости платформычтобы не потерять пользователей и не только цель "armeabi-v7a"

Я следовал документации для Android здесь https://developer.android.com/studio/build/configure-apk-splits, как это:

splits {
    // Configures multiple APKs based on ABI.
    abi {
        enable true
        reset()
        include "armeabi", "armeabi-v7a", "armeabi-v8a", "x86","x86_64", "mips", "mips64"
        universalApk true
    }
}

, но он не смог построить APK ипоказывает ошибку:
При сборке Gradle не удалось создать пакет Android.
при запуске flutter build apk --release .. Помогите, пожалуйста?

1 Ответ

0 голосов
/ 17 октября 2018

Ваша конфигурация подходит для генерации нескольких apk-артефактов в типичных сборках Android с кодом C ++, по одному для каждой архитектуры.Однако, флаттер все еще не в состоянии построить для большинства архитектур, которые вы определяете.

flutter build apk -h

. . .
    --target-platform         [android-arm (default), android-arm64]

В частности, отсутствуют x86 и x86_64.

Для практических целей флаттер охватывает почти все физические устройства,поскольку уже давно нет новых телефонов, использующих x86, и даже несколько лет назад их было немного.Самым большим недостатком является то, что мы не можем запускать производственные сборки на эмуляторах.

...