web-dev-qa-db-fra.com

Erreur AAPT2 dans Android Studio 3.0.1

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?

5
Akshat Chawla

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

5
emilpmp

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.

2
Izabela Orlowska

Désactivez Instant Run et cela fonctionnera peut-être pour vous. Pour moi cela a fonctionné

0
M_P

Dans votre gradle.properties, ajoutez cette ligne Android.enableAapt2=false

0

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.

0
Hidayat Ullah

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.

 enter image description here

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.

0
UdayaLakmal

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>
0
cr05s19xx