web-dev-qa-db-fra.com

erreur Android Studio 3.0: attribut de style '@Android: attr/windowEnterAnimation' introuvable

J'avais suivi les étapes de la migration vers la mise à jour Android Studio 3.0.

build.gradle

    flavorDimensions 'dimensionless'

D:\R\merchant\projapp\popuplibrary\build\intermediates\bundles\debug\res\values ​​\ values.xml Erreur: (28, 5) erreur: l'attribut de style '@Android: attr/windowEnterAnimation' est introuvable.
C:\Users\user.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.3.1.aar\f7bb6db2aa55d14c3d1c9dd8d49e03\res\values ​​\ values. values. Erreur: Java.util.concurrent.ExecutionException: com.Android.tools.aapt2.Aapt2Exception: erreur AAPT2: consultez les journaux pour plus de détails
Erreur: L'exécution a échoué pour la tâche ': popuplibrary: processDebugAndroidTestResources' . Impossible d'exécuter aapt

Face à un problème identique, mais c’est la bibliothèque apccompat qui crée également un problème dans mon cas.

L'attribut de style '@Android: attr/windowEnterAnimation' est introuvable


gradlewrapper:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

application build.gradle:

   productFlavors {
                dev {
                    applicationIdSuffix '.dev'
                    versionName "1.0"
                    versionNameSuffix '-dev'
                    }
qa {
                    applicationIdSuffix '.qa'
                    versionName "1.0"
                    versionNameSuffix '-qa'
                    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })


    compile 'com.Android.support:appcompat-v7:25.3.1'
    compile 'com.Android.support:design:25.3.1'
    compile 'com.Android.support:cardview-v7:25.3.1'
    compile 'com.Android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    //Butter Knife
    compile 'com.jakewharton:butterknife:8.7.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'

    compile project(':popuplibrary')
}
13
AskQ

Ce problème est décrit dans le guide de migration pour Android Gradle Plugin 3.0.0 .

Utilisation incorrecte des symboles de référence de ressource @

AAPT2 génère maintenant des erreurs de construction lorsque vous omettez ou que vous ne placez pas correctement les symboles de référence de ressource (@). Par exemple, considérez si vous omettez le symbole lorsque vous spécifiez un attribut de style, comme indiqué ci-dessous:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  ...
  <!-- Note the missing '@' symbol when specifying the resource type. -->
  <item name="colorPrimary">color/colorPrimary</item>
</style>

Lors de la construction du module, AAPT2 renvoie maintenant l'erreur de construction suivante:

ERROR: expected color but got (raw string) color/colorPrimary

De plus, considérez si vous incluez de manière incorrecte le symbole lors de l'accès à une ressource à partir de l'espace de noms Android, comme indiqué ci-dessous:

...
<!-- When referencing resources from the 'Android' namespace, omit the '@' symbol. -->
<item name="@Android:windowEnterAnimation"/>

Lors de la construction du module, AAPT2 renvoie maintenant l'erreur de construction suivante:

Error: style attribute '@Android:attr/windowEnterAnimation' not found

Si vous n'avez pas commis l'erreur décrite dans la seconde moitié, c'est peut-être une ancienne version de appcompat-v7 qui est à blâmer. 

Le bon

Mettez à jour les bibliothèques de support les plus récentes en choisissant 25.4.0, 26.1.0 ou 27.0.0. Assurez-vous que vous correspondez à compileSdkVersion.

Remarque: Si vous choisissez une mise à jour vers une version antérieure à 27.0.0, vous pouvez rencontrer ce problème .

Le mauvais

Si, pour une raison quelconque, vous êtes coincé avec la version 25.3.1 ou une version antérieure, vous pouvez désactiver AAPT2 .

Si vous rencontrez des problèmes lors de l'utilisation de AAPT2, vous pouvez le désactiver en définissant Android.enableAapt2=false dans votre fichier gradle.properties et en redémarrant le démon Gradle en exécutant ./gradlew --stop à partir de la ligne de commande.

26
Eugen Pechanec

Essayez d'utiliser le sous-projets {} block dans Android/build.gradle et définissez les compiles Android récentes compileSdkVersion et buildToolsVersion utilisées dans le projet principal afin que les sous-projets utilisent également ces versions.

Exemple

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("Android")) {
            Android {
                compileSdkVersion 27
                buildToolsVersion "27.0.3"
            }
        }
    } }
0
Olivier

Ajouter Android.enableAapt2=false dans le fichier gradle.properties résout ce problème.

0
Makvin