it-swarm.com.de

android studio 3.0-Fehler: Stilattribut '@Android: attr/windowEnterAnimation' nicht gefunden

Ich hatte die Schritte zur Migration auf die Aktualisierung von Android Studio 3.0 durchgeführt.

build.gradle

    flavorDimensions 'dimensionless'

D:\R\merchant\projapp\popuplibrary\build\intermediates\bundles\debug\res\values ​​\ values.xml Fehler: (28, 5) Fehler: Stilattribut '@Android: attr/windowEnterAnimation' nicht gefunden.
C:\Users\user.gradle\caches\transforms-1\files-1.1\appcompat-v7-25.3.1.aar\f7bb6db2aa55d14683d1c9ddd8d49e03\res\values ​​\ values.xml. Fehler: Java.util.concurrent.ExecutionException: com.Android.tools.aapt2.Aapt2Exception: AAPT2-Fehler: Überprüfen Sie die Protokolle auf Details
Fehler: Ausführung fehlgeschlagen für Task ': popuplibrary: processDebugAndroidTestResources' . Aapt konnte nicht ausgeführt werden

Mit demselben Problem konfrontiert, es ist jedoch auch eine apccompat-Bibliothek, die in meinem Fall ein Problem darstellt.

Stilattribut '@Android: attr/windowEnterAnimation' nicht gefunden


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

build.gradle App:

   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

Dieses Problem wird im Migrationshandbuch für Android Gradle Plugin 3.0.0 beschrieben.

Falsche Verwendung von @ Ressourcenreferenzsymbolen

AAPT2 löst jetzt Build-Fehler aus, wenn Sie Ressourcenreferenzsymbole (@) weglassen oder falsch platzieren. Überlegen Sie beispielsweise, ob Sie das Symbol bei der Angabe eines Stilattributs auslassen, wie unten gezeigt:

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

Beim Erstellen des Moduls wirft AAPT2 jetzt den folgenden Build-Fehler:

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

Berücksichtigen Sie außerdem, ob Sie das Symbol beim Zugriff auf eine Ressource aus dem Android-Namespace falsch angeben (siehe unten):

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

Beim Erstellen des Moduls wirft AAPT2 jetzt den folgenden Build-Fehler:

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

Wenn Sie den in der zweiten Hälfte beschriebenen Fehler nicht begangen haben, ist möglicherweise eine alte Version von appcompat-v7 daran schuld. 

Die gute

Aktualisieren Sie auf neuere Unterstützungsbibliotheken, wählen Sie 25.4.0 oder 26.1.0 oder 27.0.0. Stellen Sie sicher, dass Sie mit compileSdkVersion übereinstimmen.

Hinweis: Wenn Sie ein Update auf etwas älteres als 27.0.0 durchführen, können Sie auf dieses Problem stoßen.

Das Schlechte

Wenn Sie aus irgendeinem Grund bei 25.3.1 oder älter bleiben, können Sie AAPT2 deaktivieren.

Wenn bei der Verwendung von AAPT2 Probleme auftreten, können Sie es deaktivieren, indem Sie Android.enableAapt2=false in Ihrer gradle.properties-Datei festlegen und den Gradle-Daemon neu starten, indem Sie ./gradlew --stop von der Befehlszeile aus ausführen.

26
Eugen Pechanec

Versuchen Sie, den subprojects {} block in Android/build.gradle zu verwenden, und legen Sie die zuletzt im Hauptprojekt verwendete Android-Version compileSdkVersion und buildToolsVersion so fest, dass die Unterprojekte auch diese Versionen verwenden.

Beispiel

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

Durch Hinzufügen von Android.enableAapt2=false in der gradle.properties-Datei wird dieses Problem behoben.

0
Makvin