Android Gradle-Plug-in 8.1.0 (Juli 2023)

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:

  1. Erstellen Sie im Ordner res des App-Moduls eine neue Datei mit dem Namen resources.properties.
  2. Legen Sie in der Datei resources.properties die Standardsprache mit dem Label unqualifiedResLocale 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.