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

Abhängigkeiten:
Mindestversion Standardversio 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 eingebunden. Fügen Sie dazu jeder projektspezifischen build.gradle-Datei, in der das Plug-in verwendet wird, den folgenden Code hinzu:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Neue Transform API hinzugefügt, mit der Drittanbieter-Plug-ins kompilierte .class-Dateien bearbeiten können, bevor sie in .dex-Dateien umgewandelt werden. Die Transform API vereinfacht das Einfügen benutzerdefinierter Klassenmanipulationen und bietet mehr Flexibilität bei den Optionen, die Sie manipulieren können. 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 bei android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Es ist nicht erforderlich, Aufgaben miteinander zu verknüpfen. Beachten Sie Folgendes bei der Transform API:
    • Eine Transformation kann auf eines oder mehrere der folgenden Elemente angewendet werden: das aktuelle Projekt, untergeordnete Projekte 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. Lediglich der javac/dx-Codepfad tut dies.
    • Gradle führt die Transformationen in der folgenden Reihenfolge aus: JaCoCo, Drittanbieter-Plug-ins, ProGuard. Die Ausführungsreihenfolge für Drittanbieter-Plug-ins entspricht der Reihenfolge, in der die Transformationen durch die Drittanbieter-Plug-ins hinzugefügt werden. Die Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
  • Der dex-Getter wurde aus der Klasse ApplicationVariant eingestellt. Sie können nicht mehr über die Variant API auf die Aufgabe Dex zugreifen, da sie jetzt über eine Transformation ausgeführt wird. Derzeit gibt es keinen Ersatz für die Steuerung des dex-Prozesses.
  • Die inkrementelle Unterstützung für Assets wurde behoben.
  • 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 ist jetzt möglich, einen Gradle-Build korrekt fehlschlagen zu lassen und die zugrunde liegende Fehlerursache zu melden, wenn der Gradle-Build asynchrone Aufgaben aufruft und es im Worker-Prozess zu einem Fehler kommt.
  • Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten hinzugefügt, die mehrere ABIs enthalten.
  • Unterstützung für eine kommagetrennte Liste von Geräteseriennummern für die Umgebungsvariable ANDROID_SERIAL beim Installieren oder Ausführen 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 einen Leerraum enthält.
  • Verschiedene Probleme im Zusammenhang mit der Fehlerausgabe des Android Asset Packaging Tools (AAPT) wurden behoben.
  • Unterstützung für die inkrementelle Instrumentierung mit JaCoCo für schnellere inkrementelle Builds. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumentierer direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumentierungstools erzwingen möchten, müssen Sie es als Build-Script-Abhängigkeit hinzufügen.
  • Die JaCoCo-Unterstützung wurde so angepasst, dass Dateien, die keine Klassen sind, ignoriert werden.
  • Unterstützung für vektorbasierte Grafiken zum Generieren von PNGs zur Laufzeit hinzugefügt, um die Abwärtskompatibilität zu verbessern. Das Android-Plug-in für Gradle generiert PNGs für jedes Vektor-Zeichnen, das in einem Ressourcenverzeichnis gefunden wird, in dem keine API-Version angegeben ist oder für das im <uses-sdk>-Element im App-Manifest ein android:minSdkVersion-Attribut mit dem Wert 20 oder niedriger angegeben ist. Sie können PNG-Dichten mithilfe der generatedDensities-Eigenschaft in den Abschnitten defaultConfig oder productFlavor einer build.gradle-Datei festlegen.
  • Es wurde die Freigabe der mockbaren android.jar hinzugefügt, die das Plug-in nur einmal generiert und für Unit-Tests verwendet. Mehrere Module, z. B. app und lib, teilen sich jetzt die ID. Löschen Sie $rootDir/build, um es neu zu generieren.
  • Die Verarbeitung von Java-Ressourcen erfolgt jetzt vor den Verschleierungsaufgaben und nicht mehr während des Paketierens des APK. Durch diese Änderung haben die Obfuscation-Aufgaben die Möglichkeit, die Java-Ressourcen nach der Obfuscation der Pakete anzupassen.
  • 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 Plug-in für die experimentelle Bibliothek unabhängig vom android:compileSdkVersion-Attribut festzulegen.