J'essaie d'obtenir une application "hello world" sous Android Studio 3.0.1 et d'obtenir le résultat d'erreur AAPT2 suivant:
Error:(16) error: not well-formed (invalid token).
Error:(16) not well-formed (invalid token).
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...
Je n'ai pas pu trouver de solution. Quelqu'un pourrait-il m'aider, s'il vous plaît?
Android.enableAapt2 = false Ne faites pas cette étape pour masquer temporairement le problème. Aapt1 va bientôt être obsolète et Aapt2 doit être utilisé d'ici 2018.
Ceci est juste un problème avec les outils de construction de Gradle. Il suffit de mettre à jour votre outil et les outils de mesure.
J'utilise classpath 'com.Android.tools.build:gradle:3.3.0-alpha02' 'balise de dépendance inside dans Gradle niveau projet et j'utilise Gradle version 4.8. Cela a résolu le problème pour moi.
Supplémentaire Désactiver Exécuter instantanément, si cela ne résout pas le problème
L'erreur "pas bien formé" de AAPT2 signifie que l'un de vos fichiers XML n'est pas bien formé, il manque probablement un crochet de fermeture ou quelque chose de similaire. Au-dessus de l'erreur, il doit indiquer de quel fichier il provient. Regardez votre répertoire res/et les fichiers qu'il contient.
Désactivez Instant Run et cela fonctionnera peut-être pour vous. Pour moi cela a fonctionné
Dans votre gradle.properties
, ajoutez cette ligne Android.enableAapt2=false
J'ai eu le même problème, j'ai changé
compileSdkVersion 22 à compileSdkVersion 25
targetSdkVersion 22 à targetSdkVersion 25
implémentation 'com.Android.support:appcompat-v7:22'to implémentation' com.Android.support:appcompat-v7:25 '
Cela a résolu le problème pour moi.
C'est une vieille question, aucun organisme ne semble fournir la bonne manière de trouver l'erreur AAPt2
Erreur AAPT2: vérifiez les journaux pour plus de détails
ce sera différent pour chaque cas.
Donc, trouver l'erreur correcte, vous devez exécuter assembelDebugas suggérer dans ici
Référence image suivante pour exécuter assembleDebug.
dans mon cas, le fichier png est corrompu et n'a échoué qu'avec la version release. je dois donc lancer assemblembleRelese pour trouver ce problème.
Dans mon cas, la solution était un peu délicate et amusante. J'ai eu un RelativeLayout
avec un TextView
et un ProgressBar
. La Progressbar
repose sur la TextView
, comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:weightSum="1"
tools:context="com.caoa.yakokoe.yakokoe.ui.splash.SplashActivity">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="0.5">
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:contentDescription="@string/content_desc_logo_green"
Android:src="@drawable/logo_green" />
</RelativeLayout>
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="0.5">
<ProgressBar
Android:id="@+id/splash_progress_bar"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_above="@id/splash_text"
Android:layout_centerHorizontal="true"
Android:indeterminate="true"
Android:visibility="gone" />
<TextView
Android:id="@+id/splash_text"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_marginBottom="24dp"
Android:layout_marginTop="16dp"
Android:text="@string/splash_text_default"
Android:textAlignment="center"
Android:visibility="gone" />
</RelativeLayout>
</LinearLayout>
Cela a jeté une sorte d'erreur (oublié ce que c'était, mais c'était dans les lignes de 'ne peut pas trouver id de layout_above').
La solution consistait simplement à inverser les emplacements ProgressBar
et TextView
, comme suit:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:weightSum="1"
tools:context="com.caoa.yakokoe.yakokoe.ui.splash.SplashActivity">
<!-- Content here -->
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="0.5">
<TextView
Android:id="@+id/splash_text"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_marginBottom="24dp"
Android:layout_marginTop="16dp"
Android:text="@string/splash_text_default"
Android:textAlignment="center"
Android:visibility="gone" />
<ProgressBar
Android:id="@+id/splash_progress_bar"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_above="@id/splash_text"
Android:layout_centerHorizontal="true"
Android:indeterminate="true"
Android:visibility="gone" />
</RelativeLayout>
</LinearLayout>