De repente, recibo este error de compilación en mi proyecto de Android:
unexpected element <queries> found in <manifest>¿Cómo lo soluciono?
Arreglar el error es muy simple. Actualice su estudio de Android a la última versión y use la última versión estable del complemento Gradle. Actualmente, uso Android Studio versión 4.1.3 con Gradle Plugin 6.8.2
chicos, por favor atenciones , para consultas de uso deben escribir el código de consulta en la etiqueta fuera de la aplicación , no dentro de la etiqueta de la aplicación
para más información vea la foto de abajo
actualice su versión de Gradle a 4.0.1+
android/gradle/wrapper/gradle-wrapper.properties actualice la URL de distribución a: distributionUrl=https://services.gradle.org/distributions/gradle-6.7-all.zip
android/build.gradle actualizar el complemento de gradle: classpath 'com.android.tools.build:gradle:4.1.2'
a 4.0.1+ aquí está 4.1.2 con la versión de Gradle a 6.5+
puede ver el gráfico de distribución en https://stackoverflow.com/a/35272475/10184868
Para comprender por qué sucede esto, consulte la respuesta anterior de @CommonsWare
Esto se debe a que la etiqueta <queries> se introdujo con nuevas opciones de visibilidad de paquetes para Android 11 y versiones posteriores (SDK 30+). Por eso, necesitas actualizar tu build.gradle con una versión que incluya estos cambios. A continuación se muestra una lista de las opciones de Gradle compatibles.
La mejor solución para lidiar con estos errores es Actualizar su complemento Gradle de Android y Actualizar Gradle
Deberá actualizar su versión de Gradle a una de las versiones compatibles que tengan las etiquetas de consulta más recientes (que se introdujeron con Android 11).
Para actualizar el complemento Gradle de Android
Especifique la versión del complemento en el archivo YourAppDirectory/android/build.gradle . La versión del complemento se aplica a todos los módulos integrados en ese proyecto de Android Studio. El siguiente ejemplo establece el complemento en la versión 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' }Si la versión del complemento especificado no se ha descargado, Gradle lo descargará la próxima vez que cree su proyecto o haga clic en Herramientas > Android > Sincronizar proyecto con archivos Gradle desde la barra de menú de Android Studio.
Para actualizar Gradle
Especifique la versión de Gradle editando la referencia de distribución de Gradle en el archivo YourAppDirectory/android/gradle/wrapper/gradle-wrapper.properties .
No olvide actualizar su gradle-wrapper.properties ditributionUrl . Por ejemplo, para gradle 4.0.1 , deberías tener:
... distributionUrl = https\://services.gradle.org/distributions/gradle-6.1.1-all.zip ...Sin embargo, sabemos que no todo el mundo está listo para actualizar a la última versión, y es posible que estés confiando en versiones antiguas de Gradle o bibliotecas que no son compatibles con 4.1.
El complemento Gradle de Android necesita saber acerca de los nuevos elementos del manifiesto, particularmente para el proceso de fusión del manifiesto. El complemento tiende a confundirse si ve elementos en la fusión manifiesta que no reconoce, descartando errores de compilación como el de la pregunta.
En este caso, Android 11 introdujo <queries> como un elemento manifiesto y las versiones anteriores del complemento Android Gradle no conocen ese elemento.
El hecho de que esto ocurra a partir de la fusión manifiesta significa que simplemente actualizar una dependencia podría provocar este error. Por ejemplo, si actualiza a la última versión de com.awesome:awesome-library y contenía un elemento <queries> en su archivo de manifiesto, es posible que se bloquee con el error mencionado anteriormente en sus compilaciones, incluso sin ningún otro cambio en su código. .
Google lanzó una serie de versiones de parches del complemento Android Gradle para solucionar este problema:
3.3.33.4.33.5.43.6.44.0.1 Si está utilizando un complemento existente en la serie 3.3.* a 4.0.* , actualice a la versión de parche asociada (o superior) de esa lista, y ya no debería encontrarse con ese error (por ejemplo, classpath 'com.android.tools.build:gradle:4.0.1' ).
Si está utilizando Android Studio 4.1 o superior, con un complemento Gradle de Android correspondiente (por ejemplo, en la serie 4.1.* ), debería estar bien sin ningún cambio. Esas versiones de complementos ya conocían <queries> .
Consulte esta publicación del blog de desarrolladores de Android para obtener más información.
Tuve este problema en flutter, pero creo que esta solución funcionará tanto para flutter como para desarrolladores nativos de Android.
Sigue estos pasos
Elimine la carpeta .gradle dentro de la carpeta de Android, es decir, android>.gradle
En el archivo del proyecto build.gradle, actualice su ruta de clase de manera adecuada según el blog en el enlace anterior, por ejemplo, actualicé a classpath 'com.android.tools.build:gradle:4.0.1'
Actualice la URL de distribución también. Está en el archivo android>gradle>gradle-wrapper.properties apropiadamente. por ejemplo, lo actualicé a distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
Puede invalidar cachés y reiniciar su estudio de Android. Asegúrese de tener una buena conexión a Internet porque descargará los nuevos archivos gradle.
Gracias.
debido a la nueva configuración y funciones predeterminadas para la visibilidad de paquetes en Android 11 que necesitan agregar <queries> , debe actualizar su complemento de gradle de Android.
Google ha agregado algunos parches a las versiones actuales que se enumeran aquí:
https://developer.android.com/studio/releases/gradle-plugin.html?buildsystem=cmake#4-0-0
Si desea utilizar una versión más nueva de Android Gradle, debe buscar un envoltorio compatible desde aquí:
https://developer.android.com/studio/releases/gradle-plugin.html?buildsystem=cmake#updating-gradle
También tuve el mismo problema en Android Studio 4.1.1, de repente, hace 2 días. Resolví el problema actualizando la versión build gradle.
la configuración anterior en el archivo build.gradle del proyecto era:
classpath("com.android.tools.build:gradle:3.5.3")configuración actual:
classpath("com.android.tools.build:gradle:3.5.4")El problema desapareció de inmediato. :)
Tuve este error en la biblioteca react-native-image-crop-picker y resolví este problema actualizando la versión de gradle como se mencionó anteriormente.
Fue:
classpath("com.android.tools.build:gradle:3.5.3")Actualizado a:
classpath("com.android.tools.build:gradle:3.5.4")Y ejecuté un:
cd android && ./gradlew clean && cd .. && npx react-native run-androidEntonces funcionó bien.