Не удалось перенести проект Flutter на AndroidX

У меня есть проект Flutter в Android Studio. Я планирую перейти на AndroidX. Всякий раз, когда я делаю Рефакторинг -> Миграция на AndroidX, Android Studio показывает сообщение об ошибке:

Для перехода на AndroidX вам необходимо установить compileSdk как минимум на 28 в вашем модуле build.gradle.

Однако я уже установил compileSdkVersion 28 в моем файле app / gradle.build.

введите описание изображения здесь

Что еще мне нужно сделать?


person Sam    schedule 28.01.2019    source источник


Ответы (8)


Мне удалось решить свою проблему:

  1. Откройте проект Flutter в Android Studio
  2. Щелкните правой кнопкой мыши каталог Android, выберите Flutter -> Открыть модуль Android в Android Studio. Он попросил меня обновить мой плагин Gradle.
  3. Затем я установил Google Play Services. Инструменты -> Менеджер SDK -> Инструменты SDK и проверьте Сервисы Google Play.

После установки сервисов Google Play я сделал Refactor -> Migrate to AndroidX. Это начало работать.

Примечание. Выполните рефакторинг в окне проекта, которое вы открыли на шаге 2.

person Sam    schedule 10.02.2019
comment
Я пробовал, но мой голос в меню Flutter отключен, и я не знаю, как открыть голосовое меню Android. - person Giacomo M; 22.02.2019
comment
@GiacomoMasseroniChiaro У меня такая же проблема imgur.com/2C4EnIH Вам повезло? Работает на модуле iOS - person Niamh; 02.03.2019
comment
@GiacomoMasseroniChiaro Я поднял это как проблему в репозитории Flutter, если вы хотите подписаться на github.com / flutter / flutter / issues / 28791 - person Niamh; 03.03.2019
comment
Вместо ... 2. Щелкните правой кнопкой мыши каталог Android и Flutter - ›Откройте модуль Android в Android Studio. Он попросил меня обновить мой плагин Gradle. - Я использовал Инструменты - ›Flutter -› Открыть Android-модуль ... - person Jerry; 02.05.2019
comment
@Jerry У меня нет такой записи в Инструментах - ›Flutter - person DarkNeuron; 14.06.2019
comment
да, это сработало. Еще одна вещь, которую нужно добавить - иногда нужно подождать, чтобы завершить ее выполнение после того, как все было установлено / обновлено. - person Sithu; 08.10.2019
comment
Просто хотел вмешаться и сказать, что это изначально не сработало для меня. Он работал после обновления моих плагинов Flutter и Dart и установки сервисов Google Play через SDK Manager. Затем я смог щелкнуть правой кнопкой мыши каталог Android и перейти к Flutter - ›Открыть модуль Android в Android Studio. Как только он открылся, мне пришлось довольно долго терпеливо ждать завершения всех процессов. Затем в правом нижнем углу появился плагин Update Gradle. Сделал это и смог начать миграцию AndroidX, щелкнув правой кнопкой мыши каталог Android. Это тоже заняло довольно много времени. - person shaun m; 26.10.2019

Вот как я избавился от ошибки "compileSdkVersion 28". Но прежде чем я решил это таким образом, я обновил Android Studio IDE с 3.4.1 до 3.5.1. Я не уверен, действительно ли это было нужно. Итак, какая бы версия IDE у вас ни была, посмотрите, сможете ли вы решить эту проблему с помощью следующих шагов.

  1. Перейдите в «Структура проекта» - (2-й значок слева от значка AVD Manager в правом верхнем углу IDE)

  2. В диалоговом окне «Структура проекта» под левой навигацией нажмите «Настройки проекта» -> «Модули».

  3. После выбора Модулей на правой панели вы должны увидеть 3 вкладки Источники, Пути, Зависимости.

  4. Нажмите «Зависимости», если вы получаете ошибку compileSdkVersion 28, версия SDK в разделе «Зависимости» указывает на версию ниже 28 -> Выберите 28 или выше.

Структура проекта -› Модули - ›Зависимости 5. Нажмите "ОК".

  1. Теперь Refactor-> Migrate to AndroidX работал у меня
person smajithia    schedule 11.10.2019

В gradle.build (приложение) добавьте это

 compileSdkVersion 28
    defaultConfig {
        ......
        minSdkVersion 21
        targetSdkVersion 28
        ......
    }

И есть некоторые реализации, необходимые для использования androidx: -

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

И добавьте эти две строки (ниже) в gradle.properties: -

android.useAndroidX=true
android.enableJetifier=true
person DeePanShu    schedule 28.01.2019
comment
Спасибо за ваш ответ. Я попробую и обновлю ветку - person Sam; 28.01.2019
comment
Я пробовал то, что вы предложили, но по-прежнему показывает ту же ошибку - person Sam; 30.01.2019

У меня точно такая же проблема. Пытался мигрировать, так как все новое оборудование firebase заставляет его, но текущие руководства по обновлению скудны. Сначала я пробовал сделать резервную копию своего проекта с большим количеством надстроек и продолжал получать эту ошибку, затем я создал новый проект flutter со всеми последними версиями (канал разработчиков), следил за каждым шагом, проверял каждую деталь, читал все форумы, но по-прежнему появляется сообщение «Для перехода на AndroidX вам необходимо установить compileSdk как минимум на 28 в вашем модуле build.gradle» ... Выполнены шаги из https://androidxhackathon.blogspot.com/2018/05/refactor-to-android-x.html тоже и могу Неправильный рефакторинг. Даже перешел в File> ProjectStructure> Project SDK и установил Android API 28 Platform. Кто-нибудь знает, что нам может не хватать? Тебе повезло, Сэм?

person Alan Bedian    schedule 29.01.2019
comment
Я собираюсь попробовать то, что предложил @Deepansu. Если мне не повезет, я удалю студию Android, а затем снова попробую импортировать проект. обновит пост - person Sam; 29.01.2019
comment
При удаче? @Alan Bedian - person Sam; 08.02.2019
comment
Нет, потратил часы на отладку и не был уверен, удалось ли кому-нибудь запустить функцию «Переход на AndroidX». Еще раз, создал чистый проект barebone, выполнил все шаги, compileSdkVersion и targetSdkVersion равен 28, заменил все инструменты на эквивалент androidx, включил gradle.properties и поиграл со всем остальным, что я могу придумать, и все еще говорю, что вам нужно установите compileSdk как минимум на 28 ... Запуск последней версии Android Studio 3.3 (в Windows), Flutter 1.2.0 и т. д. Что еще нам может не хватать? Кто-нибудь получил правильную миграцию? - person Alan Bedian; 10.02.2019
comment
Я также попытался удалить и переустановить свою Android Studio, но все еще выдавал ту же ошибку ... :-( - person Sam; 10.02.2019
comment
Хорошо, это был трюк, чтобы открыть модуль Android в Android Studio, ура ... Я бы сам не наткнулся на этот процесс, спасибо. Это разрешение следует добавить в официальное руководство по переходу на AndroidX. Теперь я собираюсь рискнуть этим в моем проекте Flutter с более чем 60 надстройками, которые я использую, немного нервнича, но, по крайней мере, мы поняли эту часть ... - person Alan Bedian; 11.02.2019
comment
@AlanBedian Что вы имеете в виду "Открыть модуль Android в Android Studio"? Не могли бы вы рассказать немного подробнее, чтобы я мог попробовать то же решение? Спасибо! - person Eric Duffett; 04.03.2019
comment
Я добавил примечание для щелчка правой кнопкой мыши по каталогу Android и Flutter - ›Открыть модуль Android в Android Studio. Он попросил меня обновить мой плагин Gradle. Выше. - person Jerry; 02.05.2019

Нажмите на Invalidate cache / Restart from file option сработал для меня

person Manish Butola    schedule 25.03.2019

Попробуйте заменить значение по умолчанию в dependencies {...} в app / build.gradle следующим образом:

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}

Замена аналогична той, что опубликована в разделе «Не рекомендуется ...» по этой ссылке: https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

Если вы можете объяснить, почему это работает, добавьте комментарий. Спасибо!

person gwafito    schedule 03.07.2019

Перейдите в «Структура проекта» в меню «Файлы». Устраните все проблемы, которые вы видите там, например, установите android sdk, исправьте указанные проблемы.

person shahana kareen    schedule 23.09.2019

Простое решение. Следуйте шагам.

  1. Создайте новое приложение -> (отметьте androidX в окне) -> готово
  2. Добавьте несколько строк в android -> app -> build.gradle, как показано ниже, обновите defaultConfig

    minSdkVersion 19
    targetSdkVersion 28
    multiDexEnabled true
    
  3. Перейдите в Refractor -> migrateToAndroidx
  4. Сделайте Flutter clean
  5. Рестарт
  6. Запустить

надеюсь, что теперь это работает ...

person zakaria    schedule 19.03.2020