Я только что создал новый проект flutter, добавил несколько плагинов, и я переключаю плагин на android x, поэтому мне нужно переключиться на android x. Я перепробовал все разные способы перехода на android x, и пока ни один из них у меня не помог. Прямо сейчас я даже не знаю, что мне делать, это так неприятно, почему бы Flutter не обработать это при автоматическом создании новых проектов. Возможно, будет использовать ionic для проекта.
Проекты Flutter и проблемы с миграцией Android X
Ответы (9)
Когда вы создаете новый проект, просто следуйте ответу @harsh, и все готово.
Однако, поскольку я недавно обновил свое существующее приложение, чтобы использовать новые плагины, мне также пришлось перейти на AndroidX ... и процедуру по умолчанию в официальные инструкции не работают, поскольку для переноса проекта используется Android Studio - сказано:« Использование не найдено! ».
Итак, я сделал следующее:
- обновил Android Studio до 3.3
- попробовал меню Refactor> Migrate to AndroidX
- получил "Никаких использований не найдено" (если вам удастся сделать это здесь, остановитесь! все готово! ... на самом деле, вы можете дать этот ответ попробуйте, прежде чем продолжить)
- открыл
android/gradle.properties
и добавил
android.useAndroidX=true
android.enableJetifier=true
открыл
android/build.gradle
и изменилcom.android.tools.build:gradle
to version3.3.0
com.google.gms:google-services
до версии4.2.0
открыл
android/app/build.gradle
и- changed
compileSdkVersion
to28
- заменен
android.support.test.runner.AndroidJUnitRunner
наandroidx.test.runner.AndroidJUnitRunner
- заменен
com.android.support.test:runner
наandroidx.test:runner:1.1.0
- заменен
com.android.support.test.espresso:espresso-core
наandroidx.test.espresso:espresso-core:3.1.0
- в моем случае это было так, но вот полный список необходимых замен
- changed
открыл
android/gradle/wrapper/gradle-wrapper.properties
и изменилdistributionUrl
наhttps\://services.gradle.org/distributions/gradle-4.10.2-all.zip
(возможно, вам придется использовать версию 5.4.1, см. обновление ниже)выполнено
flutter clean
И вопреки тому, что я ожидал, ЭТО Сработало! :)
ОБНОВЛЕНИЕ (27 октября 2019 г.)
При обновлении моего приложения до флаттера v1.9.1+hotfix.5
, поскольку я использую подписывание приложений, я застрял с ошибкой SigningConfig "release" is missing required property "storePassword"
, и в конце концов это была версия Gradle из шага 7 выше. Итак, теперь я использую 5.4.1, как предлагается в этом вики.
[android/gradle/wrapper/gradle-wrapper.properties]
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
gradle.properties
? это тот, что в корневой папке? /Users/(user)/.gradle
или где конкретно?
- person Malcolm Salvador; 27.06.2019
Я успешно выполнил миграцию, используя Sam ответ!
1. Open the Flutter project into Android Studio
2. Right click on the android directory and Flutter -> Open Android module in Android Studio. It asked me to upgrade my gradle plugin.
3. Then I installed Google Play Services. Tools -> SDK Manager -> SDK Tools and chek the Goolge Play Services.
Добавьте это в конец вашего pubspec.yaml
файла без родителя:
module:
androidX: true
Затем в android / graddle.properties добавьте:
android.useAndroidX=true
android.enableJetifier=true
Запустите в своем CLI:
flutter clean
и перезапустите свой код
flutter run
Это может решить вашу проблему с AndroidX
.
Что касается вашего SDK, я думаю, вы можете изменить внутри android/app/build.gradle
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
multiDexEnabled
не является обязательным (в случае связанной с ним ошибки).
Думаю, это поможет решить вашу проблему. Пожалуйста, поделитесь со мной своим мнением.
Столкнулся с этой проблемой недавно. После многих часов поиска я наткнулся на эту среднюю страницу https://medium.com/@swhussain110/how-to-migrate-your-flutter-app-to-androidx-9a78eaaa924b
Следуй этим шагам
- На уровне проекта build.gradle измените путь к классам на
com.android.tools.build:gradle:3.3.1
. - На уровне приложения build.gradle измените ваши
compileSdkVersion
иtargetSdkVersion
на 28. - Теперь щелкните правой кнопкой мыши каталог Android в вашем проекте Flutter, перейдите во Flutter и нажмите Открыть модуль Android в Android Studio. Открыть проект в новом окне.
- Теперь перейдите в Refactor на панели инструментов и нажмите Migrate to AndroidX.
- Затем нажмите «Выполнить рефакторинг» и подождите, пока построится gradle.
После множества попыток я только что создал новый проект Flutter и просто скопировал папку pubspec.yaml, lib и assets из старого проекта в новый, и проблема решена.
При обновлении версии Android Studio с 3.2 до 3.3. Android Studio версии 3.3 и более поздних версий вы можете использовать либо библиотеки Android, либо библиотеки AndroidX, но
На платформе flutter flutter всегда будет использовать новейшую конфигурацию студии Android.
Это основная причина, по которой пользователи получают ошибку при использовании зависимости в соответствии с androidx.
Чтобы перенести проект flutter на AndroidX, перейдите по этой ссылке: https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility
Столкнулся с аналогичной проблемой.
Эта статья на Medium помогла мне найти 75% решение моей проблемы
Я выполнил шаги, упомянутые в этой статье. и я застрял в конце
Студия Android не позволяет мне напрямую открывать модуль (папку) Android из структуры проекта. Поэтому я открываю вручную в новом окне студии Android.
Android не подвергается рефакторингу. Gradle testRunner
classpath
androidTestImplementation
он подсказывает, как это зависит. Итак, я вручную заменил все пути, подобные.
- заменен
android.support.test.runner.AndroidJUnitRunner
наandroidx.test.runner.AndroidJUnitRunner
- заменен
com.android.support.test:runner
наandroidx.test:runner:1.1.0
- заменен
com.android.support.test.espresso:espresso-core
наandroidx.test.espresso:espresso-core:3.1.0
и в конце добавил в android / gradle.properties
android.useAndroidX=true
android.enableJetifier=true
Затем запустил приложение. ;) после этого пропало предупреждение androidX.
он все еще не работал после того, как я перешел на androidx
Я просто устанавливаю сервис Google Play на свой SDK, и он работает
Столкнулся с такой же проблемой.
В моем build.gradle compileSdkVersion и targetSdkVersion уже были установлены на 28. minSdkVersion было установлено на 23.
Уже добавил android.useAndroidX = true android.enableJetifier = true в мой android / graddle.properties.
После добавления всего этого переход на AndroidX был невозможен. При этом появится сообщение о том, что в этом проекте не найдено ни одного использования.
Добавление следующего кода в мое приложение / build.gradle решило проблему.
android {
defaultConfig {
...
minSdkVersion 23
targetSdkVersion 28
multiDexEnabled true
}
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
flutter create
по умолчанию используется androidx. Если вы хотите, вы можете указать аргумент командной строки сflutter create
как--androidx
. - person Blasanka   schedule 26.09.2019