Внезапно я получаю эту ошибку сборки в моем проекте Android:

unexpected element  found in 

Как исправить?

Ответы (8)

Плагин Android Gradle должен знать о новых элементах манифеста, в частности для процесса слияния манифестов. Плагин может запутаться, если он видит в манифесте слияния элементы, которые он не распознает, выбрасывая ошибки сборки, подобные указанной в вопросе.

В этом случае Android 11 представил как элемент манифеста, а более старые версии подключаемого модуля Android Gradle не знают об этом элементе.

Тот факт, что это происходит из-за слияния манифестов, означает, что простое обновление зависимости может вызвать эту ошибку. Например, если вы обновитесь до последней версии версия com.awesome: awesome-library, и она содержала элемент в его манифесте вы можете вылететь из-за вышеупомянутой ошибки в ваших сборках, даже без каких-либо других изменений в вашем коде.

Google выпустил серию патчей для Android Gradle Plugin, чтобы решить эту проблему:

  • 3.3.3
  • 3.4.3
  • 3.5.4
  • 3.6.4
  • 4.0.1

Если вы используете существующий плагин в сериях от 3.3. * до 4.0. *, обновите к соответствующей версии патча (или более поздней) из этого списка, и вы больше не должны столкнуться с этой ошибкой (например, classpath 'com.android.tools.build:gradle:4.0.1').

Если вы используете Android Studio 4.1 или выше, с соответствующим Плагин Android Gradle (например, в серии 4.1. *), у вас все будет хорошо без любые изменения. Эти версии плагина уже знали о <запросы>.

Подробнее см. в этом сообщении в блоге разработчиков Android.

У меня была эта ошибка в библиотеке react-native-image-crop-picker, и я решил эту проблему, обновив версию gradle, как указано выше.

Было:

путь к классам ("com.android.tools.build:gradle:3.5.3")

Обновлено до:

путь к классам ("com.android.tools.build:gradle:3.5.4")

И я запустил:

cd android && ./gradlew clean && cd .. && npx react-native run-android

Тогда все заработало.

обновите версию Gradle до 4.0.1 +

android / gradle / wrapper / gradle-wrapper.properties обновить URL-адрес распространения до: distributionUrl =https://services.gradle.org/distributions/gradle-6.7-all.zip

android / build.gradle обновить плагин gradle: путь к классам 'com.android.tools.build:gradle:4.1.2'

до 4.0.1+ вот это 4.1.2 с версией Gradle до 6.5 +

график распределения можно увидеть по адресу https://stackoverflow.com/a/35272475/10184868

У меня была эта проблема с флаттером, но я считаю, что это решение будет работать как с флаттером, так и с родным Android-разработчиком.

Выполните следующие действия

  1. Прочтите этот короткий блог, чтобы получить некоторое представление: щелкните здесь
  1. Удалите папку .gradle внутри папки android, т.е. android> .gradle

  2. В файле проекта build.gradle обновите путь класса ur соответствующим образом на основе блога по ссылке выше, например, я обновился до classpath 'com.android.tools.build:gradle:4.0.1 '

  3. Также обновите URL-адрес распространения. Он находится в файле android> gradle> gradle-wrapper.properties соответственно. например, я обновил его до distributionUrl = https \: //services.gradle.org/distributions/gradle-6.1.1-all.zip

  4. Вы можете аннулировать кеши и перезапустить студию Android. Убедитесь, что у вас хорошее интернет-соединение, потому что он загрузит новые файлы gradle.

Спасибо.

У меня тоже была такая же проблема на Android Studio 4.1.1, внезапно, 2 дня назад. Я решил проблему, обновив версию build gradle.

предыдущая установка в файле build.gradle проекта была:

classpath("com.android.tools.build:gradle:3.5.3")

текущая настройка:

classpath("com.android.tools.build:gradle:3.5.4")

Проблема исчезла сразу. :)

из-за новых настроек и функций по умолчанию для видимости пакетов в Android 11, которые необходимо добавить , вы должны обновить свой плагин android gradle.

Google добавил некоторые исправления к текущим версиям, перечисленным здесь:

https://developer.android.com/studio/releases/gradle-plugin.html?buildsystem=cmake#4-0-0

Если вы хотите использовать более новую версию android gradle, вам следует поискать совместимую оболочку отсюда:

https://developer.android.com/studio/releases/gradle-plugin.html?buildsystem=cmake#updating-gradle

Исправить ошибку очень просто. Обновите свою студию Android до последней версии и используйте последнюю стабильную версию плагина Gradle. В настоящее время я использую Android Studio версию 4.1.3 с Gradle Plugin 6.8.2

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

подробнее см. Фото ниже

https://i.stack.imgur.com/ks0AY.jpg

для флаттера

Чтобы понять, почему это происходит, см. Ответ @ CommonsWare выше

Это связано с тем, что тег был введен с новыми параметрами видимости пакетов для Android 11 и более поздних версий (SDK 30+). По этой причине вам необходимо обновить ваш build.gradle версией, которая включает эти изменения. Ниже приведен список поддерживаемых параметров Gradle.

The best solution to deal with these errors is to Upgrade your Android Gradle plugin and Update Gradle

Вам нужно будет обновить версию Gradle до одной из совместимых версий с последними тегами запросов (которые были представлены в Android 11).

Для обновления плагина Android Gradle

Укажите версию плагина в файле YourAppDirectory / android / build.gradle. Версия плагина применяется ко всем модулям, встроенным в этот проект Android Studio. В следующем примере устанавливается версия плагина 4.0.1:

buildscript {
    repositories {
        // Gradle 4.1 and higher include support for Google's Maven repo using
        // the google() method. And you need to include this repo to download
        // Android Gradle plugin 3.0.0 or higher.
        google()
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1’
    }

Если указанная версия плагина не была загружена, Gradle загрузит ее в следующий раз, когда вы соберете свой проект или нажмете Инструменты> Android> Синхронизировать проект с файлами Gradle из строки меню Android Studio.

Для обновления Gradle

Укажите версию Gradle, отредактировав ссылку на дистрибутив Gradle в файлеYourAppDirectory / android / gradle / wrapper / gradle-wrapper.properties.

Не забудьте также обновить ditributionUrl в gradle-wrapper.properties. Например, для gradle 4.0.1у вас должно быть:

...
distributionUrl = https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
...

Мы знаем, что не все готовы перейти на последнюю версию, и вы можете полагаться на старые версии Gradle или библиотеки, несовместимые с 4.1.

2022 WebDevInsider