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 und armeabi.

    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" an resConfig 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 von androidTestImplementation 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.