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

Abhängigkeiten:
  • Gradle 2.2.1 oder höher.
  • Build Tools 21.1.1 oder höher.
Allgemeine Hinweise:
  • Das Data Binding-Plug-in wurde in das Android-Plug-in für Gradle integriert. Um es zu aktivieren, fügen Sie den folgenden Code in jede projektspezifische build.gradle-Datei ein, die das Plug-in verwendet:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Eine neue Transform API wurde hinzugefügt, damit 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 Klassenmanipulationen und bietet mehr Flexibilität im Hinblick auf die Bearbeitung. Um eine Transformation in einen Build einzufügen, erstellen Sie eine neue Klasse, die eine der Transform-Schnittstellen implementiert, und registrieren Sie sie mit android.registerTransform(theTransform) oder android.registerTransform(theTransform, dependencies). Es ist nicht nötig, Aufgaben zu verbinden. 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 sein, wodurch sie auf alle Varianten angewendet werden.
    • Bei der internen Codeverarbeitung über die Java Code Abdeckung Library (JaCoCo), ProGuard und MultiDex wird jetzt die Transform API verwendet. Das Java Android Compiler Kit (Jack) verwendet diese API jedoch nicht: nur der Codepfad javac/dx.
    • 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 Drittanbieter-Plug-ins hinzugefügt werden. Entwickler von Drittanbieter-Plug-ins können die Ausführungsreihenfolge der Transformationen nicht über eine API steuern.
  • Der Getter dex aus der Klasse ApplicationVariant wurde verworfen. Sie können nicht mehr über die Variant API auf die Aufgabe Dex zugreifen, da dies jetzt über eine Transformation erfolgt. Es gibt derzeit keinen Ersatz für die Steuerung des DEX-Prozesses.
  • Die inkrementelle Unterstützung für Assets wurde behoben.
  • Die MultiDex-Unterstützung wurde durch die Bereitstellung für Testprojekte verbessert. Tests haben jetzt automatisch die Abhängigkeit com.android.support:multidex-instrumentation.
  • Es wurde die Möglichkeit hinzugefügt, einen Gradle-Build ordnungsgemäß auszuführen und die zugrunde liegende Fehlerursache zu melden, wenn der Gradle-Build asynchrone Aufgaben aufruft und im Worker-Prozess ein Fehler auftritt.
  • Unterstützung für die Konfiguration einer bestimmten Binärschnittstelle (Application Binary Interface, ABI) in Varianten, die mehrere ABIs enthalten, wurde hinzugefügt.
  • Eine durch Kommas getrennte Liste von Geräteseriennummern für die Umgebungsvariable ANDROID_SERIAL beim Installieren oder Ausführen von Tests wird jetzt unterstützt.
  • Ein Installationsfehler auf Geräten mit Android 5.0 (API-Level 20) und höher, bei denen der APK-Name ein Leerzeichen enthält, wurde behoben.
  • Verschiedene Probleme im Zusammenhang mit der Fehlerausgabe des Android Asset Packaging Tool (AAPT) wurden behoben.
  • Zusätzliche Unterstützung für die inkrementelle JaCoCo-Instrumentierung für schnellere inkrementelle Builds. Das Android-Plug-in für Gradle ruft jetzt den JaCoCo-Instrumenter direkt auf. Wenn Sie eine neuere Version des JaCoCo-Instrumenters erzwingen möchten, müssen Sie sie als Build-Skript-Abhängigkeit hinzufügen.
  • JaCoCo-Unterstützung wurde korrigiert, sodass Dateien ignoriert werden, die keine Klassen sind.
  • Für die Abwärtskompatibilität werden jetzt auch Vektor-Drawable-Unterstützung für die Erzeugung von PNGs zum Build-Zeitpunkt hinzugefügt. Das Android-Plug-in für Gradle generiert PNGs für jedes Vektor-Drawable, das in einem Ressourcenverzeichnis gefunden wird und in dem im App-Manifest keine API-Version oder ein android:minSdkVersion-Attribut von 20 oder niedriger im <uses-sdk>-Element angegeben ist. Sie können die PNG-Dichte mit der Eigenschaft generatedDensities im Abschnitt defaultConfig oder productFlavor einer build.gradle-Datei festlegen.
  • Die gemeinsame Nutzung der Mockable-android.jar, die vom Plug-in nur einmal generiert und für Einheitentests verwendet wird, wurde hinzugefügt. Mehrere Module, z. B. app und lib, teilen sie jetzt. Löschen Sie $rootDir/build, um es neu zu generieren.
  • Die Verarbeitung von Java-Ressourcen wurde so geändert, dass sie vor den Verschleierungsaufgaben statt während des Packens des APK ausgeführt werden. Durch diese Änderung können die Verschleierungsaufgaben die Java-Ressourcen nach der Paketverschleierung anpassen.
  • Ein Problem bei der Verwendung von JNI-Code (Java Native Interface) im experimentellen Bibliotheks-Plug-in wurde behoben.
  • Es wurde die Möglichkeit hinzugefügt, die Plattformversion getrennt vom android:compileSdkVersion-Attribut im experimentellen Bibliotheks-Plug-in festzulegen.