Android Gradle-Plug-in 3.2.0 (September 2018)

Für diese Version des Android-Plug-ins ist Folgendes erforderlich:

3.2.1 (Oktober 2018)

Mit diesem Update müssen Sie keine Version für die SDK-Build-Tools mehr angeben. Das Android-Gradle-Plug-in verwendet jetzt standardmäßig Version 28.0.3.

Neue Funktionen

  • Unterstützung für die Entwicklung von Android App Bundles:Das App Bundle ist ein neues Uploadformat, das den gesamten kompilierten Code und die Ressourcen Ihrer App enthält. Dabei wird die APK-Erstellung aufgeschoben und im Google Play Store signiert. Du musst nicht mehr mehrere APKs erstellen, signieren und verwalten, und Nutzer erhalten kleinere Downloads, die für ihr Gerät optimiert sind. Weitere Informationen findest du unter Android App Bundles.

  • Unterstützung von verbesserten inkrementellen Build-Geschwindigkeiten bei Verwendung von Annotationsprozessoren: Die AnnotationProcessorOptions-DSL erweitert jetzt CommandLineArgumentProvider, sodass entweder Sie oder der Ersteller des Annotationsprozessors Argumente für den Prozessor mithilfe von inkrementellen Annotationen des Build-Attributtyps annotieren können. Die Verwendung dieser Annotationen verbessert die Korrektheit und Leistung von inkrementellen und im Cache gespeicherten sauberen Builds. Weitere Informationen finden Sie unter Argumente an Annotationsprozessoren übergeben.

  • Migrationstool für AndroidX:Wenn Sie das Android-Gradle-Plug-in 3.2.0 mit Android 3.2 und höher verwenden, können Sie die lokalen und Maven-Abhängigkeiten Ihres Projekts zur Verwendung der neuen AndroidX-Bibliotheken migrieren. Wählen Sie dazu in der Menüleiste Refactor > Migrate to AndroidX (Refaktorieren > Zu AndroidX migrieren) aus. Mit diesem Migrationstool werden in der Datei gradle.properties auch die folgenden Flags auf true gesetzt:

    • android.useAndroidX: Wenn dieser Wert auf true gesetzt ist, verwendet das Android-Plug-in die entsprechende AndroidX-Bibliothek anstelle einer Support Library. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auf false festgelegt.

    • android.enableJetifier:Wenn das Android-Plug-in auf true gesetzt ist, migriert es automatisch vorhandene Bibliotheken von Drittanbietern zur Verwendung von AndroidX. Dabei werden die Binärprogramme umgeschrieben. Wenn dieses Flag nicht angegeben ist, wird es vom Plug-in standardmäßig auf false gesetzt. Sie können dieses Flag nur auf true setzen, während android.useAndroidX ebenfalls auf true gesetzt ist. Andernfalls erhalten Sie einen Build-Fehler.

      Weitere Informationen finden Sie in der Übersicht zu AndroidX.

  • Neuer Code-Shrinker, R8: R8 ist ein neues Tool zum Verkleinern und Verschleieren von Code, das ProGuard ersetzt. Sie können die Vorabversion von R8 verwenden, indem Sie Folgendes in die gradle.properties-Datei Ihres Projekts einfügen:

            android.enableR8 = true
            
            android.enableR8 = true
            

Änderungen des Verhaltens

  • Das Dessugaren mit D8 ist jetzt standardmäßig aktiviert.

  • AAPT2 befindet sich jetzt im Maven-Repository von Google. Für die Verwendung von AAPT2 muss die google()-Abhängigkeit in Ihrer build.gradle-Datei vorhanden sein (siehe unten):

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • Native Multidex-Dateien sind jetzt standardmäßig aktiviert. In früheren Versionen von Android Studio wurde natives Multidex aktiviert, wenn die Debug-Version einer App auf einem Gerät mit Android API-Level 21 oder höher bereitgestellt wurde. Unabhängig davon, ob Sie die Bereitstellung auf einem Gerät vornehmen oder ein APK für einen Release erstellen, aktiviert das Android-Gradle-Plug-in natives Multidex für alle Module, für die minSdkVersion=21 oder höher festgelegt ist.

  • Das Plug-in erzwingt jetzt eine Mindestversion des protobuf-Plug-ins (0.8.6), des Kotlin-Plug-ins (1.2.50) und des Crashlytics-Plug-ins (1.25.4).

  • Das Feature-Modul-Plug-in com.android.feature erzwingt jetzt die Verwendung von nur Buchstaben, Ziffern und Unterstrichen bei der Angabe eines Modulnamens. Wenn der Name des Feature-Moduls beispielsweise Bindestriche enthält, wird ein Build-Fehler ausgegeben. Dieses Verhalten entspricht dem des Plug-ins für dynamische Funktionen.

Fehlerkorrekturen

  • JavaCompile kann jetzt in Projekten mit Datenbindung zwischengespeichert werden. (Problem 69243050)
  • Bessere Kompilierungsvermeidung für Bibliotheksmodule mit Datenbindung. (Problem 77539932)
  • Sie können configure-on-demand jetzt wieder aktivieren, wenn Sie die Funktion in früheren Versionen aufgrund unvorhersehbarer Build-Fehler deaktiviert haben. (Problem 77910727)