Das Android-Gradle-Plug-in 8.0.0 ist eine Hauptversion, die eine Vielzahl neuer Funktionen und Verbesserungen.
Kompatibilität
Mindestversion | Standardversio | Hinweise | |
---|---|---|---|
Logo: Gradle | 8.0 | 8.0 | Weitere Informationen finden Sie unter Gradle aktualisieren. |
SDK-Build-Tools | 30.0.3 | 30.0.3 | Installieren oder konfigurieren Sie SDK-Build-Tools. |
Logo: NDK | – | 25.1.8937393 | Installieren oder konfigurieren Sie eine andere Version des NDK. |
JDK | 17 | 17 | Weitere Informationen finden Sie unter JDK-Version festlegen. |
Patch releases
Im Folgenden finden Sie eine Liste der Patchreleases für das Android-Gradle-Plug-in 8.0.
Android-Gradle-Plug-in 8.0.2 (Mai 2023)
Eine Liste der in AGP 8.0.2 behobenen Fehler finden Sie in der Geschlossene Probleme mit Android Studio 2022.2.1.
Android-Gradle-Plug-in 8.0.1 (Mai 2023)
Dieses kleinere Update umfasste folgende Fehlerkorrekturen:
Behobene Probleme | |
---|---|
Fehler: „Keine Versionsanforderung mit der angegebenen ID in der Tabelle“ nach dem Upgrade auf AGP 7.2.2 -> 7.4.0
|
|
R8 NullPointerException bei markTypeAsLive AGP 7.4.1
|
|
[R8 4.0.53] Fehler bei der Überprüfung der harten Klasse unter Android 11
|
Nicht abwärtskompatible Änderung: Namespace im Build-Skript auf Modulebene erforderlich
Sie müssen den Namespace in der Datei build.gradle.kts
auf Modulebene festlegen,
als die Manifestdatei. Du kannst jetzt die DSL-Property namespace
verwenden
ab 7.3 AGP. Weitere Informationen finden Sie unter
Legen Sie einen Namespace fest.
Beachten Sie bei der Migration zu Namespace-DSL die folgenden Probleme:
- Frühere Versionen von AGP leiten den Test-Namespace aus dem Haupt-Namespace ab.
Anwendungs-ID, die in einigen Fällen falsch ist. Der AGP Upgrade Assistant blockiert
Upgrade ausführen, wenn festgestellt wird, dass der Haupt-Namespace und der Test-Namespace Ihres Projekts
ist das Gleiche. Wenn das Upgrade blockiert ist, müssen Sie
testNamespace
manuell ändern und ändern Sie Ihren Quellcode entsprechend. - Nachdem Sie den Test-Namespace geändert haben, ist es möglich, dass Ihr Code kompiliert
aber Ihre instrumentierten Tests schlagen zur Laufzeit fehl. Das kann passieren,
verweist der instrumentierte Testquellcode auf eine Ressource, die in Ihren
androidTest
und App-Quellen.
Weitere Informationen finden Sie unter Problem Nr. 191813691 Kommentar Nr. 19
Funktionsgefährdende Änderungen: Standardwerte der Build-Option
Ab AGP 8.0 wurden die Standardwerte für diese Flags in die Build-Leistung zu verbessern. Um Hilfe bei der Anpassung Ihres Codes für einige AGP-Upgradeassistenten verwenden, (Tools > AGP Upgrade Assistant) (Tools > AGP-Upgrade-Assistent). Der Upgrade-Assistent führt Sie durch Sie müssen Ihren Code aktualisieren, um das neue Verhalten zu berücksichtigen, oder Flags festlegen, die beibehalten werden sollen dem vorherigen Verhalten.
Melden | Neuer Standardwert | Vorheriger Standardwert | Hinweise |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0 generiert BuildConfig nicht standardmäßig. Du brauchst
, um diese Option in den Projekten, in denen sie benötigt wird, über DSL anzugeben. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0 aktiviert die AIDL-Unterstützung nicht standardmäßig. Sie müssen angeben, in den Projekten, in denen Sie sie benötigen, über DSL. Diese Markierung ist wird voraussichtlich in AGP 9.0 entfernt. |
android.defaults.buildfeatures.renderscript |
false |
true |
In AGP 8.0 ist die RenderScript-Unterstützung nicht standardmäßig aktiviert. Erforderliche Schritte Geben Sie diese Option in den Projekten, in denen Sie sie benötigen, über DSL an. Dieses wird voraussichtlich in AGP 9.0 entfernt. |
android.nonFinalResIds |
true |
false |
AGP 8.0 generiert R -Klassen mit nicht endgültigen Feldern durch
Standardeinstellung. |
android.nonTransitiveRClass |
true |
false |
AGP 8.0 generiert R -Klassen für Ressourcen, die in
nur auf das aktuelle Modul. |
android.enableR8.fullMode |
true |
false |
AGP 8.0 aktiviert standardmäßig den R8-Full-Modus. Weitere Informationen finden Sie unter R8 – Vollbildmodus. |
Funktionsgefährdende Änderungen: Erzwungene Werte für Build-Optionen
Ab AGP 8.0 können Sie die Werte für diese Flags nicht mehr ändern. Wenn
in der Datei gradle.properties
angeben, wird der Wert ignoriert und AGP
gibt Warnungen aus.
Melden | Erzwungener Wert | Hinweise |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0 gibt eine Warnung aus, wenn während da die Konfiguration sich negativ auf die Gradle-Konfiguration auswirkt. Mal. |
android.r8.failOnMissingClasses |
true |
AGP 8.0 schlägt Builds fehl, die R8 verwenden, wenn Klassen fehlen, um
eine bessere DEX-Optimierung. Um dieses Problem zu beheben, müssen Sie den
fehlende Bibliotheken oder -dontwarn Aufbewahrungsregeln. Weitere Informationen
Siehe
Fehlende Klassenwarnungen im R8-Schrumpfer. |
android.testConfig.useRelativePath |
true |
Bei Unterstützung für die Verwendung von Android-Ressourcen, -Assets und -Manifesten in
aktiviert sind, generiert AGP 8.0 eine
test_config.properties -Datei, die nur relative
Pfade. Dadurch wird sichergestellt, dass Android-Einheitentests immer den Gradle-Plug-in verwenden können.
Build-Cache. |
android.useNewJarCreator |
true |
AGP nutzt die Zipflinger-Bibliothek beim Erstellen von JAR-Dateien, um die die Leistung Ihrer Website zu verbessern. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
Wenn das Hinzufügen von Informationen zu SDK-Abhängigkeiten in AABs und APKs aktiviert ist, In AGP 8.0 wird diesen Informationen auch eine Liste von Projekt-Repositories hinzugefügt. Bis Weitere Informationen finden Sie unter Informationen zu Abhängigkeiten für die Play Console |
android.enableArtProfiles |
true |
Referenzprofile werden jetzt immer generiert. Weitere Informationen finden Sie unter Baseline-Profile. |
android.enableNewResourceShrinker |
true |
Verwenden Sie standardmäßig die neue Ressourcen-Shinker-Implementierung. Das neue und unterstützt dynamische Features. |
android.enableSourceSetPathsMap |
true |
Wird für die Berechnung relativer Ressourcenpfadzuordnungen verwendet, damit Gradle erstellt häufiger aktuell sind. |
android.cacheCompileLibResources |
true |
Kompilierte Bibliotheksressourcen können jetzt standardmäßig im Cache gespeichert werden, da Gradle
Ressourcendateien relativ zum Projektspeicherort. Erforderlich
android.enableSourceSetPathsMap wird aktiviert. |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 erstellt standardmäßig keine SoftwareComponent. Stattdessen erstellt AGP SoftwareComponents nur für Varianten, die für die Veröffentlichung konfiguriert sind mit dem Veröffentlichungs-DSL. |
Neues stabiles Flag für das Ausführungsprofil
AGP enthält das neue Flag android.settings.executionProfile
. Verwenden Sie dieses Flag, um
Standardausführungsprofil aus der
SettingsExtension
Weitere Informationen finden Sie in der Dokumentation zum Einstellungs-Plug-in.
Eine Vorschau der experimentellen Flags finden Sie in der Versionshinweise für die Vorabversion
Verzögerte Kotlin-Attributzuweisung wird nicht unterstützt
Wenn Sie für Ihre Build-Skripts Kotlin DSL von Gradle verwenden,
Studio und AGP 8.0 unterstützen die Zuweisung von experimentellen Eigenschaften mithilfe der Methode
Operator =
. Weitere Informationen zu dieser Funktion finden Sie in der
Versionshinweise
und
Dokumentation.
Build Analyzer-Aufgabenkategorien
Ab Android Studio Flamingo bietet Build Analyzer eine neue Standardansicht für Aufgaben, die sich auf die Build-Dauer auswirken. Wenn Ihr Projekt AGP 8.0 oder höher verwendet, anstatt Aufgaben einzeln anzuzeigen, gruppiert der Build Analyzer Kategorie. z. B. Aufgaben speziell für Android Resources, Kotlin oder Dexing gruppiert und dann nach Build-Dauer sortiert. So können Sie ganz einfach welche Kategorie den größten Einfluss auf die Build-Dauer hat. Jede Kategorie wird erweitert zeigt eine Liste der entsprechenden Aufgaben an. Um sich die Aufgaben einzeln anzeigen zu lassen, ohne Gruppierung verwenden, verwenden Sie das Drop-down-Menü Gruppieren nach.
Neues Plug-in für Einstellungen
Mit AGP 8.0.0-alpha09 wird das neue Plug-in für Einstellungen eingeführt. Mit dem Plug-in für Einstellungen zentralisieren Sie globale Konfigurationen – Konfigurationen, die für alle Module gelten – in an einem Ort. So müssen Sie die Konfigurationen nicht in mehreren Module. Außerdem können Sie mit dem Plug-in für die Einstellungen Ausführungsprofile oder unterschiedliche Anleitungen zum Ausführen eines Tools und zwischen ihnen wechseln.
Wenn Sie das Plug-in für Einstellungen verwenden möchten, wenden Sie das Plug-in in der Datei settings.gradle
an:
apply plugin 'com.android.settings'
Globale Konfigurationen zentralisieren
Verwenden Sie zum Konfigurieren globaler Konfigurationen den neuen android
-Block in der
settings.gradle
-Datei. Beispiel:
android {
compileSdk 31
minSdk 28
...
}
Profile für die Toolausführung
Mit dem Plug-in für Einstellungen können Sie auch Ausführungsprofile für einige Tools erstellen. Eine das Ausführungsprofil bestimmt, wie ein Tool ausgeführt wird, können Sie verschiedene von der Umgebung abhängig. In einem Ausführungsprofil kann JVM-Argumente für ein Tool festlegen und so konfigurieren, dass es in einem separaten Prozess ausgeführt wird. Derzeit sind nur die R8-Tool wird unterstützt.
Erstellen Sie Ausführungsprofile und legen Sie das Standardausführungsprofil fest in der
settings.gradle
, wie im folgenden Beispiel gezeigt:
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
Wählen Sie zum Überschreiben des Standardprofils mithilfe der
android.experimental.settings.executionProfile
-Property im
gradle.properties
-Datei:
android.experimental.settings.executionProfile=high
Sie können diese Eigenschaft auch über die Befehlszeile festlegen. Damit können Sie
unterschiedliche Workflows. Beispiel: Sie haben einen Continuous-Integration-Workflow,
können Sie das Ausführungsprofil über die Befehlszeile
Ändern Sie die Datei settings.gradle
:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
JDK 17 zur Ausführung von AGP 8.0 erforderlich
Wenn du deine App mit dem Android-Gradle-Plug-in 8.0 erstellst, ist jetzt JDK 17 erforderlich um Gradle auszuführen. Android Studio Flamingo bündelt JDK 17 und konfiguriert Gradle so, standardmäßig verwendet. Das bedeutet, dass die meisten Android Studio-Nutzer Konfigurationsänderungen an ihren Projekten.
Wenn Sie die JDK-Version manuell festlegen müssen von AGP in Android Studio verwendet wird, müssen Sie JDK 17 oder höher verwenden.
Wenn Sie AGP unabhängig von Android Studio verwenden, führen Sie ein Upgrade der JDK-Version durch, indem Sie
JAVA_HOME
festlegen
Umgebungsvariable
oder die -Dorg.gradle.java.home
Befehlszeilenoption
in Ihr Installationsverzeichnis von JDK 17.