android - solucion - error: failed linking file resources.
Error: com.android.tools.aapt2.Aapt2Exception: error AAPT2: verifique los registros para obtener detalles (30)
Este es el resultado de mi consola Gradle, no puedo construir mi proyecto
D:/Android Projects/..../app/src/main/res/layout/topic_view_header.xml
Error:error: resource attr/?? (aka -packagename- :attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:error: resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:resource attr/?? (aka -packagename-:attr/??) not found.
Error:failed linking file resources.
Error:java.util.concurrent.ExecutionException:
java.util.concurrent.ExecutionException:
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:java.util.concurrent.ExecutionException:
com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for
details
Error:Execution failed for task '':app:processDebugResources''.
> Failed to execute aapt
Information:BUILD FAILED in 27s
Information:11 errors
Information:0 warnings
Android Studio 3.0 RC 2
Actualización importante
No agregue esta línea a su proyecto como otras respuestas. Porque ya está resuelto en las nuevas versiones de Gradle .
Puede actualizar su versión de construcción gradle en
Project level
build.gradle
a la última.
buildscript {
dependencies {
// choose latest if available
classpath ''com.android.tools.build:gradle:3.3.0-alpha06''
}
}
y gradle-wrapper.properties
// choose latest if available
distributionUrl=https/://services.gradle.org/distributions/gradle-4.9-all.zip
¡Eso es todo! Sincronizar y ejecutar, Bingo!
Más información Documentación de Android
Si agrega, recibirá una advertencia
android.enableAapt2=false
ADVERTENCIA: La opción ''android.enableAapt2'' está en desuso y ya no debe usarse. Use ''android.enableAapt2 = true'' para eliminar esta advertencia. Se eliminará a finales de 2018.
Acabo de tener este problema al intentar usar el enlace de datos y declarar la etiqueta de diseño. Sé que es un poco tarde, pero por el bien de cualquiera que se encuentre con este problema, lo que hice para resolver el problema después de tantos intentos fue que en su diseño raíz cuando no está utilizando enlace de datos, por ejemplo, esto
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"> </android.support.constraint.ConstraintLayout>
eliminar el
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
y solo póngalo en su etiqueta de diseño ( es decir, si está utilizando el enlace de datos )
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
</layout>
y espero que funcione
android.enableAapt2=false
no funcionó para mí, así que tengo que eliminar todo e intentar averiguar por qué recibo el error cuando coloco la etiqueta de diseño y uso el enlace de datos, así que se me ocurrió la solución.
Espero eso ayude
Asegúrese de utilizar tipos de archivo válidos en su directorio
src/main/res/raw
.
En mi caso, había copiado un archivo .mov junto con un montón de otros archivos en mi directorio res / raw.
Sospecho que el problema era que aapt estaba tratando de procesar el archivo .mov y no sabía qué hacer con él.
Cerrar el proyecto y reiniciar el estudio de Android me solucionó este problema.
Mientras se reiniciaba, Android Studio notificó que necesitaba descargar SDK faltantes, por lo que una vez que se solucionó el problema, se solucionó.
Como señaló @Izabela Orlowska: En mi caso, el problema se produjo debido a que algunos archivos no se podían encontrar dentro de la carpeta de caché de Gradle. (Sistema operativo Windows)
La ruta de acceso predeterminada estaba dentro de mi carpeta de usuario.
el camino contenía diéresis y un espacio.
Moví la carpeta gradle configurando la
GRADLE_HOME
entorno
GRADLE_HOME
y
GRADLE_USER_HOME
en una carpeta recién creada sin diéresis ni espacios en la ruta.
Esto solucionó el problema para mí.
Dado que en algún momento en el futuro el soporte para AAPT (1) quedará en desuso, sería bueno identificar la razón del error que informó.
¿Podría proporcionar el contenido del archivo / app / src / main / res / layout / topic_view_header.xml?
A partir de los signos de interrogación, es posible que esté utilizando caracteres no ASCII, con los cuales AAPT2 todavía tiene algunos problemas.
Si de hecho son caracteres no ASCII, siga el error en
https://issuetracker.google.com/68262818
.
Actualización : el problema se solucionó en el complemento de Android Gradle versión 3.2.0-alpha11 o posterior.
Desactivar el problema de la causa AAPT2 Mght en el desarrollo posterior, en mi caso, el error se generó cuando creé el icono de la aplicación.
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="Infinity"
android:viewportHeight="Infinity">
<path android:fillColor="#26A69A"
android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
Lo resuelvo eliminando esta línea
android:viewportWidth="Infinity"
android:viewportHeight="Infinity"
En mi caso, el verdadero problema era que después de generar Image Asset para generar el icono mipmap del iniciador para mi proyecto, el archivo generado ic_launcher_foreground.xml tenía un error en su interior (se generó incorrectamente). Faltaba la etiqueta xml de cierre al final del archivo, faltaba </ vector> .
En mi caso, estaba usando el código de color incorrecto
#CC00000
que no es válido porque tiene 7 dígitos, pero el código de color debe tener 3 o 6 u 8 dígitos más el prefijo #
Este mensaje de error (error AAPT2: verifique los registros para obtener detalles) no es útil porque no le dice cuál es el verdadero problema.
En mi caso, se debió a un archivo extraíble XML de recursos que faltaba.
error: failed linking file resources.
org.gradle.tooling.BuildException: Failed to process resources, see aapt output above for details.
Solo lo descubrí porque deshice los cambios en el archivo XML, y esta vez recibí un mensaje más útil:
error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found.
Message{kind=ERROR, text=error: resource drawable/ic_filter_off (aka com.xxx:drawable/ic_filter_off) not found., sources=[C:/code/xxx/app/src/main/res/layout/app_bar_main.xml:69], original message=, tool name=Optional.of(AAPT)}
Intenté todo lo sugerido aquí y en muchos otros sitios, eventualmente descubrí que el problema era con el bloqueo de Bitdefender .
Si tiene instalado Bitdefender, entonces necesita activar aapt & aapt2 " Application Access " individualmente.
Espero que esto sea de utilidad.
Mi problema se debió a un nombre de archivo de imagen que termina en .9.png . Cambié el final a .png y el problema desapareció. Obtuve la pista del seguimiento de la pila en la consola Gradle: el mensaje superior era "Error de ejecución para la tarea: aplicación: mergeDebugResources " y el mensaje inferior era "com.android.builder. Png .AaptProcess $ NotifierProcessOutput.out"
Espero con ansias el día en que Gradle muestre más mensajes de error útiles ...
No estoy seguro de si esto ya se ha respondido para usted, pero permítame opinar. Recientemente me enfrenté a un problema similar y pude identificar el problema exacto desde la pestaña de compilación al lado del logcat. Mi problema fue causado por un error de familia de fuentes en el XML. Estoy usando la última versión de Android Studio con la actualización de marzo de 2018.
Obtuve el mismo error AAPT2 error: revise los registros para obtener detalles, y apliqué las soluciones anteriores, según la solución más común, me abrieron gradle.properties y agregué la línea
android.enableAapt2 = false
para la solución, pero recibí un error El ''comando'' del proceso D: / Android / sdk / Sdk / build-tools / 27.0.3 / aapt.exe '''' finalizó con un valor de salida distinto de cero 1
Pero después de muchas búsquedas, descubrí que hay un problema en el archivo xml de diseño que repetía líneas en el archivo xml de diseño, que es el siguiente:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
Elimine las líneas de repetición del archivo xml y reconstruya el proyecto y Listo.
Recibí este error cuando el nombre del proyecto era muy largo y se agregó la ubicación en la que estaba guardando el proyecto. Mover el proyecto a otra ubicación para que los nombres de los archivos no crucen el límite del sistema resolvió el error.
C:/Users/<UserName>/AndroidStudioProjects/From Github/AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces/AdvancedAndroid_Emojify-TLIB.02-Exercise-DetectFaces/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml Error:error: file not found. Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details Error:Execution failed for task '':app:mergeDebugResources''. Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Según lo sugerido por otros,
android.enableAapt2=false
Es la solución más común.
Pero en mi caso, el error se debió a diferentes versiones en compileSdkVersion y buildToolsVersion .
Asegúrese de que la versión principal se mantenga igual.
Si está utilizando Kotlin obteniendo error debido a algunos errores en los archivos xml. En kotlin es muy difícil encontrar errores xml, la construcción consigue fallar simplemente. Para conocer el registro exacto de errores, ejecute el siguiente comando en Android Studio Terminal y es fácil corregir los errores.
./gradlew clean
./gradlew assemble
Si ha visto este error después de intentar ejecutar pruebas de implementación de Android individuales o clases de prueba (haciendo clic en el icono de ejecución en la canaleta) en un proyecto de Kotlin en Android Studio 3.0.1, puede evitar el error ejecutando el paquete de prueba completo (haciendo clic derecho en el paquete de prueba y seleccionando "Ejecutar pruebas en ...").
Hay un error conocido en Android Studio 3.0.1 que hace que el IDE ejecute pruebas de implementación de Kotlin como pruebas JUnit regulares, lo que provocó que el mensaje de error del OP se mostrara en mi máquina. El error se rastrea en https://issuetracker.google.com/issues/71056937 . Parece que se ha solucionado en Android Studio 3.1 Canary 7.
También encontré este error. Para mí, fue cuando cambié el SDK de destino de 26 a 25. Pude solucionar el problema cambiando la versión de dependencia de appcompat de
implementation ''com.android.support:appcompat-v7:26.1.0''
a
implementation ''com.android.support:appcompat-v7:25.4.0''
Esto permitirá que el compilador acceda a los atributos de estilo que actualmente no puede encontrar. Esto realmente solucionará el problema en lugar de enmascarar el problema real como sugirió Enzokie.
También he tenido un problema así, el original es la bandeja del sistema de mi computadora en esta ruta:
C: / Users / ''aparecen caracteres especiales'' / .android apareció en chino,
y ahora cambié el camino a:
C: / Users / hjc / .android.
La razón es el problema de los caracteres especiales. Es por esta razón que conduce a problemas de grava appt2Exception
Tener el mismo problema aquí. Como señaló @Izabela Orlowska, este problema probablemente sea causado por caracteres especiales en la ruta (archivos grandle de Android, recursos, etc.).
Para mí: tener
ří
en el nombre de la carpeta causó todos los problemas.
Asegúrate de no tener caracteres especiales en las rutas.
Deshabilitar AAPT2 es solo una "solución" temporal.
La ruta del proyecto contiene caracteres no ASCII android studio
Tuve exactamente el mismo problema: después de actualizar a Android Studio 3.1.2, mi proyecto no se compilaba con un error de AAPT2 que me indicaba que algunos de mis dibujos que se refieren a
styles.xml
no se pudieron encontrar.
Desactivar AAPT2 ya no es una solución, ya que la configuración está en desuso y se eliminará a fines de 2018.
El culpable era una línea vacía justo antes de la declinación xml en un archivo
layout.xml
totalmente no
layout.xml
... Entonces, el archivo
layout.xml
comenzó así:
//empty line//
<?xml version="1.0" encoding="utf-8"?>
Se eliminó la línea vacía y todo volvió a funcionar como un encanto. Increíble e improbable, pero cierto.
Android Studio en realidad dio una advertencia porque el archivo no comenzó con la declinación xml (debido a la línea vacía). Pero la advertencia solo es visible cuando el archivo se abre en el editor.
Tuve un error en mi diseño XML. Así que revise su diseño xml para ver si hay errores.
Tuve un problema muy similar. Se resolvió eliminando el caché de gradle (~ / .gradle / caches en linux), lo que obligó a Android Studio a volver a descargar y volver a generar todo.
Verifique e intente debajo de las cosas. El problema debe resolverse.
-
En primer lugar, verifique su registro desde la parte inferior de la ventana de compilación si hay algún error relacionado con el proyecto o no. Si se muestra un error, solucione todo eso. Ahora compila y ejecuta de nuevo, corrige todo el error que aparece. Eliminará el problema de aapt2 sin cambiar el complemento de Android Gradle a 3.2.0.
-
En segundo lugar, si no se muestra ningún error relacionado con el proyecto en el registro de compilación pero sigue mostrando un error aapt2, puede solucionarlo siguiendo los pasos a continuación.
Actualice su complemento de Android Gradle en el archivo
build.gradle
su nivel de proyecto como se muestra a continuación:
classpath ''com.android.tools.build:gradle:3.2.0-alpha13''
Ahora actualice
android.enableAapt2=true
.
Luego verifique y cree su proyecto.
Cualquiera de estos pasos debería funcionar para solucionar problemas relacionados.
Verifique la pestaña de la consola de gradle en el estudio de Android (por defecto en la esquina inferior derecha). En mi caso hubo errores como este:
C:/Users/Jozef Bar??k/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.4.0.aar/d68bb9d2059935a7891196f4dfb81686/res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png: error: file not found.
Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED
Resolví el problema de configurar el usuario de Gradle a otra ubicación sin caracteres blancos o especiales:
C:/Android/.gradle
Puede configurarlo configurando "Ruta del directorio de servicio " en el cuadro de diálogo de configuración de Gradle. En mi caso, fue necesario eliminar el antiguo directorio .gradle en la ubicación anterior y reiniciar Android Studio.
Verifique las siguientes cosas en su proyecto:
-
Asegúrese de que cualquier archivo XML no tenga espacio en blanco al inicio del archivo.
-
Asegúrese de que cualquier archivo dibujable no tenga ningún problema, como letras mayúsculas o símbolos especiales en el nombre.
-
Si su aapt2.exe no se encuentra continuamente, escanee su PC completa. Es posible que haya un virus que esté eliminando adb.exp o aapt2.exe
Espero que encuentres la solución.
ACTUALIZAR
Está disponible una nueva versión de Gradle y Android-gradle-plugin que soluciona estos problemas.
build.gradle (nivel superior)
buildscript {
dependencies {
classpath ''com.android.tools.build:gradle:3.2.1''
}
}
gradle-wrapper.properties
distributionUrl=https/://services.gradle.org/distributions/gradle-4.8-all.zip
RESPUESTA ANTERIOR
Si deshabilita AAPT2, simplemente está ocultando el problema real.
Tenga en cuenta que
AAPT1
podría eliminarse en el futuro, por lo tanto, se ve obligado a usar
AAPT2
.
En realidad, la
guía de migración
no es difícil de seguir, ya que no ve tantos cambios al mismo tiempo de esta manera es una prueba futura.
Jerarquías de elementos en el manifiesto de Android
En versiones anteriores de AAPT, los elementos anidados en nodos incorrectos en el manifiesto de Android se ignoran o generan una advertencia. Por ejemplo, considere la siguiente muestra:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myname.myapplication"> <application ... <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <action android:name="android.intent.action.CUSTOM" /> </activity> </application> </manifest>
Por lo tanto, debe verificar primero si realmente sigue la estructura correcta del Manifiesto como se muestra a continuación.
Estructura de archivo de manifiesto
El fragmento de código a continuación muestra la estructura general del archivo de manifiesto y cada elemento que puede contener. Cada elemento, junto con todos sus atributos, está completamente documentado en un archivo separado.
<manifest> <uses-permission /> <permission /> <permission-tree /> <permission-group /> <instrumentation /> <uses-sdk /> <uses-configuration /> <uses-feature /> <supports-screens /> <compatible-screens /> <supports-gl-texture /> <application> <activity> <intent-filter> <action /> <category /> <data /> </intent-filter> <meta-data /> </activity> <activity-alias> <intent-filter> . . . </intent-filter> <meta-data /> </activity-alias> <service> <intent-filter> . . . </intent-filter> <meta-data/> </service> <receiver> <intent-filter> . . . </intent-filter> <meta-data /> </receiver> <provider> <grant-uri-permission /> <meta-data /> <path-permission /> </provider> <uses-library /> </application> </manifest>
Actualización 2 (siga este enfoque)
No deberías hacer esto ahora. En su lugar, corrija todos los errores. Esto es solo una solución hasta que se elimine. Después de eso, deberá corregir los errores manualmente de todos modos.
Intente actualizar su complemento gradle a
3.3.0-alpha06
para verificar si eso soluciona su problema.
Actualización 1:
Los problemas de caracteres no ASCII se han solucionado en AAPT2 y el complemento de Android Gradle ahora (¡sí!). En lugar de deshabilitar AAPT2 ahora, solo puede usar el complemento de Android Gradle versión 3.2.0-alpha11 o posterior y ya no debería encontrar este error.
Respuesta original
Aapt2 está habilitado de forma predeterminada cuando utiliza el complemento de Android para Gradle 3.0.
Esto es para
mejorar el procesamiento incremental de recursos
como se indica here .
Pero si tiene problemas con él, puede volver a la versión anterior agregando esto en
gradle.properties
android.enableAapt2=false