Android-Plug-in für Gradle, Version 1.5.0 (November 2015)

Abhängigkeiten:
Mindestversion Standardversion Hinweise
Gradle 2.2.1 2.2.1 Weitere Informationen finden Sie unter Gradle aktualisieren.
SDK-Build-Tools 21.1.1 21.1.1 Installieren oder konfigurieren Sie die SDK-Build-Tools.
Allgemeine Hinweise:
  • Das Data Binding-Plug-in wurde in das Android-Plug-in für Gradle integriert. Fügen Sie dazu jeder build.gradle Datei pro Projekt, die das Plug-in verwendet, den folgenden Code hinzu:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Eine neue Transform API wurde hinzugefügt, mit der Plug-ins von Drittanbietern kompilierte .class Dateien bearbeiten können, bevor sie in .dex Dateien konvertiert werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassen Bearbeitungen und bietet mehr Flexibilität bei der Bearbeitung. Wenn Sie eine Transformation in einen Build einfügen möchten, erstellen Sie eine neue Klasse, die eine der Transform Schnittstellen implementiert, und registrieren Sie sie mit android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Aufgaben müssen nicht miteinander verknüpft werden. Beachten Sie Folgendes zur Transform API:
    • Eine Transformation kann auf eines oder mehrere der folgenden Elemente angewendet werden: das aktuelle Projekt, Unterprojekte, und externe Bibliotheken.
    • Eine Transformation muss global registriert werden, damit sie auf alle Varianten angewendet wird.
    • Die interne Codeverarbeitung über die Java Code Coverage Library (JaCoCo), ProGuard, und MultiDex verwendet jetzt die Transform API. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht, sondern nur der javac/dx-Codepfad.
    • Gradle führt die Transformationen in dieser Reihenfolge aus: JaCoCo, Plug-ins von Drittanbietern, ProGuard. Die Ausführungsreihenfolge für Plug-ins von Drittanbietern entspricht der Reihenfolge, in der die Transformationen von den Plug-ins von Drittanbietern hinzugefügt werden. Entwickler von Plug-ins von Drittanbietern können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
  • Der Getter dex aus der Klasse ApplicationVariant wurde eingestellt. Sie können nicht mehr über die Variant API auf die Aufgabe Dex zugreifen, da dies jetzt über eine Transformation erfolgt. Derzeit gibt es keine Alternative zur Steuerung des Dex-Prozesses.
  • Die inkrementelle Unterstützung für Assets wurde korrigiert.
  • Die MultiDex-Unterstützung wurde verbessert, indem sie für Testprojekte verfügbar gemacht wurde. Tests haben jetzt automatisch die com.android.support:multidex-instrumentation Abhängigkeit.
  • Es wurde die Möglichkeit hinzugefügt, einen Gradle-Build ordnungsgemäß zu beenden und die zugrunde liegende Fehlerursache zu melden wenn der Gradle-Build asynchrone Aufgaben aufruft und im Worker Prozess ein Fehler auftritt.
  • Es wurde Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten mit mehreren ABIs hinzugefügt.
  • Es wurde Unterstützung für eine durch Kommas getrennte Liste von Geräteseriennummern für die ANDROID_SERIAL Umgebungsvariable bei der Installation oder Ausführung von Tests hinzugefügt.
  • Ein Installationsfehler auf Geräten mit Android 5.0 (API-Level 20) und höher wurde behoben, wenn der APK-Name ein Leerzeichen enthält.
  • Verschiedene Probleme mit der Fehlerausgabe des Android Asset Packaging Tool (AAPT) wurden behoben.
  • Die inkrementelle JaCoCo-Instrumentierung wurde hinzugefügt, um schnellere inkrementelle Builds zu ermöglichen. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumentierer direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumentierers erzwingen möchten, müssen Sie ihn als Build-Skript-Abhängigkeit hinzufügen.
  • Die JaCoCo-Unterstützung wurde korrigiert, sodass Dateien, die keine Klassen sind, ignoriert werden.
  • Unterstützung für Vektordrawables wurde hinzugefügt, um PNGs zur Build-Zeit für die Abwärtskompatibilität zu generieren. Das Android-Plug-in für Gradle generiert PNGs für jedes Vektordrawable in einem Ressourcen verzeichnis, das keine API-Version angibt oder ein android:minSdkVersion Attribut von 20 oder niedriger in dem <uses-sdk> Element im App-Manifest angibt. Sie können PNG-Dichten mit der Eigenschaft generatedDensities in den Abschnitten defaultConfig oder productFlavor einer build.gradle-Datei festlegen.
  • Die mockbare android.jar wird jetzt freigegeben. Das Plug-in generiert sie nur einmal und verwendet sie für Unittests. Mehrere Module wie app und lib verwenden sie jetzt gemeinsam. Löschen Sie $rootDir/build, um sie neu zu generieren.
  • Die Verarbeitung von Java-Ressourcen erfolgt jetzt vor den Verschleierungsaufgaben und nicht mehr während der Paketierung des APK. Dadurch können die Verschleierungsaufgaben die Java-Ressourcen nach der Verschleierung der Pakete anpassen.
  • Ein Problem mit der Verwendung von Java Native Interface (JNI)-Code im experimentellen Bibliotheks-Plug-in wurde behoben.
  • Es wurde die Möglichkeit hinzugefügt, die Plattformversion im experimentellen Bibliotheks Plug-in unabhängig vom android:compileSdkVersion Attribut festzulegen.