Android Gradle-Plug-in 3.1.0 (März 2018)
Für diese Version des Android-Plug-ins ist Folgendes erforderlich:
-
Gradle 4.4 oder höher
Weitere Informationen finden Sie im Abschnitt zum Aktualisieren von Gradle.
-
Build Tools 27.0.3 oder höher.
Beachten Sie, dass Sie mit dem Attribut
android.buildToolsVersion
keine Version für die Build-Tools mehr angeben müssen. Das Plug-in verwendet standardmäßig die erforderliche Mindestversion.
Neuer DEX-Compiler, D8
Standardmäßig verwendet Android Studio jetzt einen neuen DEX-Compiler namens D8. Bei der DEX-Kompilierung wird der .class
-Bytecode in .dex
-Bytecode für die Android Runtime (oder Dalvik bei älteren Android-Versionen) umgewandelt. Im Vergleich zum vorherigen Compiler DX kompiliert D8 schneller und gibt kleinere DEX-Dateien aus, bei gleicher oder besserer Laufzeitleistung der Anwendung.
D8 sollte Ihren täglichen Workflow zur App-Entwicklung nicht verändern. Sollten jedoch Probleme mit dem neuen Compiler auftreten, melden Sie den Fehler. Sie können D8 vorübergehend deaktivieren und DX verwenden, indem Sie Folgendes in die gradle.properties
-Datei Ihres Projekts einfügen:
android.enableD8=false
Bei Projekten, die Sprachfeatures für Java 8 verwenden, ist das inkrementelle Desugaring standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie in der Datei gradle.properties
Ihres Projekts Folgendes angeben:
android.enableIncrementalDesugaring=false.
Vorschaunutzer: Wenn Sie bereits eine Vorschauversion von D8 verwenden, wird diese jetzt anhand von Bibliotheken kompiliert, die in den SDK-Build-Tools enthalten sind – nicht aus dem JDK. Wenn Sie also auf APIs zugreifen, die zwar im JDK, aber nicht in den Bibliotheken der SDK-Build-Tools vorhanden sind, wird ein Kompilierungsfehler ausgegeben.
Änderungen des Verhaltens
-
Wenn Sie mehrere APKs erstellen, die jeweils auf eine andere ABI ausgerichtet sind, werden standardmäßig keine APKs mehr für die folgenden ABIs generiert:
mips
,mips64
undarmeabi
.Wenn Sie APKs erstellen möchten, die auf diese ABIs ausgerichtet sind, müssen Sie NDK r16b oder niedriger verwenden und die ABIs in Ihrer
build.gradle
-Datei angeben, wie unten gezeigt:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Der Build-Cache des Android-Plug-ins entfernt jetzt Cache-Einträge, die älter als 30 Tage sind.
-
Bei der Übergabe von
"auto"
anresConfig
werden nicht mehr automatisch Stringressourcen für Ihr APK ausgewählt. Wenn Sie"auto"
weiterhin verwenden, packt das Plug-in alle Stringressourcen, die Ihre Anwendung und die zugehörigen Abhängigkeiten bereitstellen. Sie sollten stattdessen alle Sprachen angeben, die das Plug-in in Ihr APK verpacken soll. -
Da lokale Module nicht vom Test-APK Ihrer App abhängig sein können, führt das Hinzufügen von Abhängigkeiten zu Ihren instrumentierten Tests mithilfe der
androidTestApi
-Konfiguration anstelle vonandroidTestImplementation
dazu, dass Gradle die folgende Warnung ausgibt:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Fehlerkorrekturen
- Es wurde ein Problem behoben, bei dem Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkennt.
- Es wurde ein Problem behoben, bei dem ein Projektsynchronisierungsfehler auftritt, wenn das Android-Plug-in in einem einzelnen Build mehrmals geladen wird, z. B. wenn mehrere Unterprojekte jeweils das Android-Plug-in in ihren Buildscript-Klassenpfad enthalten.