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: - 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 derTransform
-Schnittstellen implementiert, und registrieren Sie sie mitandroid.registerTransform(theTransform)
oderandroid.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 KlasseApplicationVariant
wurde verworfen. Sie können nicht mehr über die Variant API auf die AufgabeDex
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 EigenschaftgeneratedDensities
im AbschnittdefaultConfig
oderproductFlavor
einerbuild.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
undlib
, 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.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- 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