App-Modul konfigurieren

Auf dieser Seite werden nützliche App-Einstellungen in build.gradle.kts auf Modulebene beschrieben. -Datei. Sie erhalten nicht nur einen Überblick über wichtige Eigenschaften, die im build.gradle.kts-Datei enthält, finden Sie hier Informationen:

  • Anwendungs-ID für verschiedene Build-Konfigurationen ändern
  • Namespace unabhängig von der Anwendungs-ID sicher anpassen

App-ID festlegen

Jede Android-App hat eine eindeutige App-ID, die wie eine Java-Anwendung aussieht. oder Kotlin-Paket Name, z. B. com.example.myapp. Mit dieser ID wird Ihre App eindeutig auf der und im Google Play Store erhältlich.

Ihre Anwendungs-ID wird durch das Attribut applicationId in der build.gradle.kts-Datei, wie hier gezeigt. Den Wert von applicationId aktualisieren indem Sie com.example.myapp durch Ihre App-ID:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 15
        targetSdk = 24
        versionCode = 1
        versionName = "1.0"
    }
    ...
}

Cool

android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

Obwohl die Anwendungs-ID wie ein herkömmliches Kotlin- oder Java-Paket aussieht Namen, die Benennungsregeln für die Anwendungs-ID, sind etwas restriktiver:

  • Er muss mindestens zwei Segmente enthalten, also einen oder mehrere Punkte.
  • Jedes Segment muss mit einem Buchstaben beginnen.
  • Alle Zeichen müssen alphanumerisch oder Unterstrich [a–zA–Z0–9_] sein.

Wenn Sie ein neues Projekt in Android erstellen Studio, die applicationId ist automatisch den bei der Einrichtung ausgewählten Paketnamen zugewiesen. Ich beide Properties von da an unabhängig umschalten, wird nicht empfohlen.

Beim Festlegen der Anwendungs-ID sollten Sie Folgendes tun:

  • Behalten Sie die Anwendungs-ID im Namespace bei. Die Unterscheidung zwischen den können etwas verwirrend sein, aber wenn Sie sie nicht ändern, ist das kein Grund zur Sorge.
  • Ändern Sie die App-ID nach der Veröffentlichung Ihrer App nicht. Wenn Sie es ändern, Der nachfolgende Upload wird im Google Play Store als neue App behandelt.
  • Definieren Sie die Anwendungs-ID explizit. Wenn die Anwendungs-ID nicht explizit applicationId-Attribut definiert ist, übernimmt sie automatisch -Wert als Namespace. Dies bedeutet, dass durch das Ändern des Namespace Anwendungs-ID, die normalerweise nicht Ihren Vorstellungen entspricht.

Anwendungs-ID für Testzwecke ändern

Die Build-Tools wenden standardmäßig eine Anwendungs-ID auf Ihre Instrumentierungstest APK mit der App-ID für die angegebene Build-Variante, angehängt mit .test Ein Test-APK für das com.example.myapp.free Build-Variante enthält die Anwendungs-ID com.example.myapp.free.test.

Auch wenn es nicht unbedingt erforderlich sein sollte, können Sie die Anwendungs-ID ändern, indem Sie indem du das Attribut testApplicationId in deinem defaultConfig oder productFlavor Block.

Namespace festlegen

Jedes Android-Modul hat einen Namespace, der als Kotlin- oder Java-Code verwendet wird. Paketname für Die generierten Klassen R und BuildConfig.

Ihr Namespace wird durch das Attribut namespace in der build.gradle.kts, wie im folgenden Code-Snippet dargestellt. Das namespace ist anfangs auf den Paketnamen festgelegt, den Sie bei der Einrichtung Erstellen Sie Ihr Projekt.

Kotlin

android {
    namespace = "com.example.myapp"
    ...
}

Cool

android {
    namespace "com.example.myapp"
    ...
}

Während Sie Ihre App in das finale Anwendungspaket (APK) entwickeln, Build-Tools verwenden den Namespace als Namespace für das von Ihrer Anwendung generierte R , über die auf Ihre App-Ressourcen. In der vorherigen Build-Datei wird die Klasse R beispielsweise an folgender Stelle erstellt: com.example.myapp.R.

Der Name, den Sie für das Attribut namespace der Datei build.gradle.kts festgelegt haben sollte immer dem Namen des Basispakets Ihres Projekts entsprechen. Aktivitäten und anderen App-Code. Sie können weitere Teilpakete in Ihr Projekt. Diese Dateien müssen jedoch die R-Klasse mithilfe der Methode Namespace aus dem Attribut namespace.

Verwenden Sie für einen einfacheren Workflow denselben Namespace wie Ihren Anwendungs-ID, wie sie standardmäßig der Fall ist.

Namespace ändern

In den meisten Fällen sollten Sie den Namespace und die Anwendungs-ID da dies standardmäßig der Fall ist. Möglicherweise müssen Sie jedoch den Namespace unter wenn Sie Ihren Code neu organisieren oder Namespace-Konflikte vermeiden möchten.

Ändern Sie in diesen Fällen den Namespace, indem Sie das Attribut namespace in der build.gradle.kts-Datei Ihres Moduls unabhängig vom Anwendungs-ID. Stellen Sie vorher sicher, dass Ihre Anwendungs-ID explizit definiert, sodass durch eine Änderung des Namensraums nicht auch die Anwendungs-ID. Weitere Informationen dazu, wie sich der Namespace auf den Anwendungs-ID finden Sie unter App-ID festlegen.

Wenn Sie unterschiedliche Namen für die namespace haben und der Gradle-Datei applicationId, die Build-Tools kopieren Fügen Sie die App-ID am Ende des Builds in die finale Manifestdatei Ihrer App ein. Wenn Sie also Ihre AndroidManifest.xml-Datei nach einem Build prüfen, ist das Attribut package auf den Wert Anwendungs-ID. Im Attribut package des zusammengeführten Manifests befindet sich der Ihre App wird vom Google Play Store und von der Android-Plattform erkannt.

Namespace für Tests ändern

Der Standard-Namespace für die Quellgruppen androidTest und test ist der Haupt-Namespace. Namespace mit .test am Ende. Wenn zum Beispiel der Parameter Das Attribut namespace in der Datei build.gradle ist com.example.myapp, ist der Test-Namespace standardmäßig auf com.example.myapp.test. Verwenden Sie zum Ändern des Namespace für Tests die Methode testNamespace enthalten, wie im folgenden Code-Snippet gezeigt:

Kotlin

android {
    namespace = "com.example.myapp"
    testNamespace = "com.example.mytestapp"
    ...
}

Cool

android {
    namespace "com.example.myapp"
    testNamespace "com.example.mytestapp"
    ...
}

Achtung: Legen Sie testNamespace und namespace auf denselben Wert, andernfalls Namespace dass es zu Kollisionen kommt.

Weitere Informationen zum Testen finden Sie unter Apps unter Android testen.