Android-Gradle-Plug-in 3.1.0 (März 2018)

Für diese Version des Android-Plug-ins sind die folgenden Versionen erforderlich:

Mindestversion Standardversion Hinweise
Gradle 4.4 4.4 Weitere Informationen finden Sie unter Gradle aktualisieren.
SDK-Build-Tools 27.0.3 27.0.3 Installieren oder konfigurieren Sie die SDK-Build-Tools. Sie müssen keine Version mehr für die Build-Tools mit der Property „android.buildToolsVersion“ angeben. Das Plug-in verwendet standardmäßig die mindestens erforderliche Version.

Neuer DEX-Compiler, D8

Android Studio verwendet jetzt standardmäßig einen neuen DEX-Compiler namens D8. Bei der DEX -Kompilierung wird .class -Bytecode in .dex -Bytecode für die Android Runtime (oder Dalvik für ältere Android-Versionen) umgewandelt. Im Vergleich zum vorherigen Compiler namens DX kompiliert D8 schneller und gibt kleinere DEX-Dateien aus. Gleichzeitig ist die Laufzeitleistung der App gleich oder besser.

D8 sollte Ihren täglichen App-Entwicklungsablauf nicht verändern. Wenn Sie jedoch Probleme mit dem neuen Compiler haben, melden Sie einen Fehler. Sie können D8 vorübergehend deaktivieren und DX verwenden, indem Sie Folgendes in die Datei Ihres Projekts gradle.properties einfügen:

      android.enableD8=false
    

Bei Projekten, die Java 8-Sprachfunktionen verwenden, ist die inkrementelle Desugarisierung standardmäßig aktiviert. Sie können sie deaktivieren, indem Sie Folgendes in der Datei gradle.properties Ihres Projekts angeben:

      android.enableIncrementalDesugaring=false.
    

Nutzer der Vorabversion:Wenn Sie bereits eine Vorabversion von D8 verwenden, wird jetzt gegen Bibliotheken kompiliert, die in den SDK-Build-Tools enthalten sind, nicht gegen das JDK. Wenn Sie also auf APIs zugreifen, die im JDK, aber nicht in den Bibliotheken der SDK-Build Tools vorhanden sind, erhalten Sie einen Kompilierungsfehler.

Geändertes Verhalten

  • 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 löscht jetzt Cacheeinträge, die älter als 30 Tage sind.

  • Wenn Sie "auto" an resConfig übergeben, werden keine Stringressourcen mehr automatisch für die Einbindung in Ihr APK ausgewählt. Wenn Sie weiterhin "auto" verwenden, packt das Plug-in alle String ressourcen, die Ihre App und ihre Abhängigkeiten bereitstellen. Sie sollten stattdessen jedes Gebietsschema angeben, das das Plug-in in Ihr APK packen soll.

  • Da lokale Module nicht von der Test-APK Ihrer App abhängen können, gibt Gradle die folgende Warnung aus, wenn Sie Abhängigkeiten zu Ihren instrumentierten Tests mit der androidTestApi Konfiguration anstelle von androidTestImplementation hinzufügen:

            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            
            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem Android Studio Abhängigkeiten in zusammengesetzten Builds nicht richtig erkennt.
  • Ein Problem wurde behoben, bei dem ein Projektsynchronisierungsfehler auftritt, wenn das Android-Plug-in in einem einzelnen Build mehrmals geladen wird, z. B. wenn mehrere Unterprojekte das Android-Plug-in jeweils in ihrem Buildscript-Klassenpfad enthalten.