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')
}
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.
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.
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 Ihrergradle.properties
-Datei festlegen und den Gradle-Daemon neu starten, indem Sie./gradlew --stop
von der Befehlszeile aus ausführen.
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"
}
}
} }
Durch Hinzufügen von Android.enableAapt2=false
in der gradle.properties
-Datei wird dieses Problem behoben.