Das Android Gradle-Plug-in 8.1.0 ist eine Hauptversion, die eine Vielzahl neuer Funktionen und Verbesserungen enthält.
Kompatibilität
Mindestversion | Standardversio | Hinweise | |
---|---|---|---|
Gradle | 8.0 | 8.0 | Weitere Informationen finden Sie unter Gradle aktualisieren. |
SDK-Build-Tools | 33.0.1 | 33.0.1 | 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. |
Kotlin-DSL ist die Standardeinstellung für die Build-Konfiguration
Für neue Projekte wird jetzt standardmäßig die Kotlin-DSL (build.gradle.kts
) für die Build-Konfiguration verwendet. Diese Version bietet im Vergleich zu Groovy DSL (build.gradle
) eine bessere Bearbeitung dank Syntaxhervorhebung, Codevervollständigung und Navigation zu Deklarierungen. Wenn Sie AGP 8.1 und Kotlin DSL für die Build-Konfiguration verwenden, sollten Sie Gradle 8.1 verwenden. Weitere Informationen finden Sie in der Kotlin-DSL-Migrationsanleitung.
Automatische Sprachunterstützung pro App
Ab Android Studio Giraffe Canary 7 und AGP 8.1.0-alpha07 kannst du deine App so konfigurieren, dass Spracheinstellungen pro App automatisch unterstützt werden. Das Android-Gradle-Plug-in generiert basierend auf Ihren Projektressourcen die Datei LocaleConfig
und fügt in der endgültigen Manifestdatei einen Verweis darauf hinzu. Sie müssen die Datei also nicht mehr manuell erledigen. AGP verwendet die Ressourcen in den res
-Ordnern Ihrer App-Module sowie alle Bibliotheksmodulabhängigkeiten, um die Sprachen zu bestimmen, die in die LocaleConfig
-Datei aufgenommen werden sollen.
Beachten Sie, dass die automatische Sprachfunktion pro App Apps unterstützt, die unter Android 13 (API-Level 33) oder höher ausgeführt werden. Wenn Sie das Feature verwenden möchten, müssen Sie compileSdkVersion
auf 33 oder höher festlegen. Wenn Sie für frühere Android-Versionen bevorzugte Spracheinstellungen für einzelne Apps konfigurieren möchten, müssen Sie weiterhin die APIs und die In-App-Sprachauswahl verwenden.
Geben Sie eine Standardsprache an, um die automatische Sprachunterstützung pro App zu aktivieren:
- Erstellen Sie im Ordner
res
des App-Moduls eine neue Datei mit dem Namenresources.properties
. Legen Sie in der Datei
resources.properties
die Standardsprache mit dem LabelunqualifiedResLocale
fest. Zum Erstellen der Sprachnamen kombinieren Sie den Sprachcode mit den optionalen Script- und Regionscodes und trennen Sie sie jeweils durch einen Bindestrich:- Sprache: Verwende den aus zwei oder drei Buchstaben bestehenden ISO 639-1-Code.
- Skript (optional): Verwenden Sie den ISO 15924-Code.
- Region (optional): Verwenden Sie entweder den zweistelligen ISO 3166-1-alpha-2-Code oder den dreistelligen UN_M.49-Code.
Angenommen, Ihre Standardsprache ist amerikanisches Englisch:
unqualifiedResLocale=en-US
AGP fügt diese Standardsprache und alle alternativen Sprachen, die Sie angegeben haben, mithilfe von values-*
-Verzeichnissen im Ordner res
der automatisch generierten LocaleConfig
-Datei hinzu.
Die automatische Sprachunterstützung pro App ist standardmäßig deaktiviert. Verwenden Sie die Einstellung generateLocaleConfig
im Block androidResources {}
der Datei build.gradle.kts
auf Modulebene (die Datei build.gradle
, wenn Sie Groovy verwenden), um die Funktion zu aktivieren:
Kotlin
android { androidResources { generateLocaleConfig = true } }
Groovig
android { androidResources { generateLocaleConfig true } }
Android Lint enthält Bytecode für JVM 17
Ab AGP 8.1.0-alpha04 enthält Android Lint Bytecode für JVM 17. Wenn Sie benutzerdefinierte Lint-Prüfungen schreiben, müssen Sie diese mit JDK 17 oder höher kompilieren und jvmTarget = '17'
in den Kotlin-Compiler-Optionen angeben.
Weitere Informationen zum Lint-Tool finden Sie unter Code mit Lint-Prüfungen verbessern.
Komprimierungseinstellung der nativen Bibliothek in DSL verschoben
Ab AGP 8.1.0-alpha10 wird eine Warnung angezeigt, wenn Sie keine native Bibliothekskomprimierung mit DSL anstelle des Manifests konfigurieren. In der folgenden Anleitung wird erläutert, wie Sie Ihre Konfiguration für die Verwendung von DSL aktualisieren. Wenn Sie Hilfe bei diesen Aktualisierungen benötigen, verwenden Sie den AGP-Upgrade-Assistenten (Tools > AGP-Upgrade-Assistent).
Wenn Sie unkomprimierte native Bibliotheken verwenden möchten, entfernen Sie das Attribut android::extractNativeLibs
aus dem Manifest und fügen Sie den folgenden Code in die Datei build.gradle.kts
auf Modulebene ein (die Datei build.gradle
, wenn Sie Groovy verwenden):
Kotlin
android { packagingOptions { jniLibs { useLegacyPackaging = false } } }
Groovig
android { packagingOptions { jniLibs { useLegacyPackaging false } } }
Experimentelle Build-Flags
Dies sind experimentelle Flags zum Konfigurieren des in AGP 8.1 verfügbaren Builds.
Melden | Hinzugefügt in | Standardwert | Hinweise |
---|---|---|---|
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes |
AGP 8.0 | false |
Wenn Sie diese Option aktivieren, wenn keine Signaturkonfigurationen angegeben sind, verwendet AGP beim Ausführen eines profilfähigen oder debug-fähigen Builds die Standardkonfiguration für das Debug-Signaturen. Dieses Flag ist standardmäßig deaktiviert, um Build-Autoren zu ermutigen, bestimmte Konfigurationen für die Profilerstellung zu deklarieren. |
android.experimental.library.desugarAndroidTest |
AGP 8.0 | false |
Mit diesem Flag können Bibliotheksersteller das Desugaring der zentrale Bibliothek für Test-APKs aktivieren, ohne die generierten AAE zu beeinträchtigen, z. B. durch Linting. Wir planen, dieses Verhalten in der Variant API zu unterstützen. |
android.experimental.testOptions.managedDevices.customDevice |
AGP 8.0 | false |
Wenn diese Option aktiviert ist, ermöglicht Gradle Managed Devices einen benutzerdefinierten Gerätetyp, der über ein Plug-in bereitgestellt werden kann. Dieses Flag muss aktiviert sein, wenn Sie das Firebase Test Lab-Plug-in verwenden möchten. |
android.lint.printStackTrace |
AGP 8.0 | false |
Wenn diese Option aktiviert ist, gibt Android Lint bei einem Absturz einen Stacktrace aus. Dieses Flag hat dieselben Funktionen wie die Umgebungsvariable LINT_PRINT_STACKTRACE . |
android.experimental.testOptions.managedDevices.maxConcurrentDevices |
AGP 8.0 | Keine | Gibt die maximale Anzahl gleichzeitiger Gradle Managed Devices (AVDs) an, die zu einem beliebigen Zeitpunkt aktiv sein können. Wenn der Wert 0 oder negativ ist, gibt es keine maximale Anzahl von Geräten. |
android.experimental.testOptions.installApkTimeout |
AGP 8.0 | Keine | Das Zeitlimit in Sekunden für die Installation eines APKs. Wenn der Wert 0 oder negativ ist, wird er von der UTP auf einen Standardwert gesetzt. |