Ich versuche, die Parameter versionName und VersionCode in Android Manifest automatisch zu aktualisieren und sie im Namen der Ausgabedatei anstelle von "app-release.apk" zu verwenden.
Von diese Seite habe ich diesen Code in meine build.gradle-Datei hinzugefügt :
%Vor% Dieser Code funktioniert einwandfrei, die 2 Aufgaben werden ausgeführt und die Manifestdatei wird korrekt aktualisiert.
Nun möchte ich die 2 Variablen mVersionCode
und mNextVersionName
im release
Block innerhalb der buildTypes
wie folgt verwenden:
aber der zurückgegebene Wert der 2 ist null.
Ich habe auch versucht, Eigenschaften und zusätzliche Eigenschaften einzustellen:
%Vor% in den 2 Aufgaben und sie in den release
-Block ohne Glück holen.
Hat jemand Ideen, wie das zu erreichen ist?
Alles klar, hier ist mein Code von build.gradle
des Anwendungsmoduls:
Das versionalization.gradle
, das am Kopf angewendet wird, verwende ich, um die VersionInfo zu erhöhen, und gebe dann zwei zu verwendende Werte zurück.
Es ist recht einfach, zwei Dateien zu lesen, um die notwendigen Felder zum Erstellen der Versionsinformationen zu verwenden.
Wir kopieren / benennen zuletzt die endgültige APK.
Außerdem habe ich den Kopier- / Umbenennungsteil wie folgt zuerst erreicht, aber es funktioniert nicht, wenn Sie irgendwelche Produktaromen haben, ich füge hier als eine andere Wahl ein.
%Vor%Niemand antwortete, aber ich fand eine funktionierende Lösung. Ich mag es nicht, es kann besser gemacht werden, aber im Moment ist die einzige Problemumgehung, die ich gefunden habe.
Ich bin immer noch auf der Suche nach einer besseren Lösung, wenn Sie eine haben, werde ich froh sein, sie zu lesen und zu verwenden, anstatt meiner.
Also habe ich eine neue Aufgabe in der Datei "gradle.build" hinzugefügt, sie erstellt einfach eine Kopie der Datei "app-release.apk" und benennt sie mit den Werten in der Manifest-Datei um:
%Vor% Wie Sie sehen, ist es nur eine kopierte und bearbeitete Version des Codes in den 2 vorherigen Aufgaben mit einer copy {}
-Funktion (hier die docs ), es liest die Werte von versionName und versionCode, ohne sie zu inkrementieren, und fügt sie dann in den neuen Dateinamen ein, den ich ersetzen werde.
Bei dieser Aufgabe müssen noch die zwei anderen Aufgaben vorhanden sein, damit Sie schließlich drei Aufgaben haben.
In der ersten Zeile dieser Aufgabe steht dependsOn(assembleRelease)
. Das ist sehr wichtig, es wird alle anderen standardmäßigen Release-Build-Tasks ausführen (inklusive unserer 2 Tasks, die im Manifest inkrementieren und schreiben), die die aktualisierte und signierte Apk generieren.
Wenn Sie jetzt versuchen, das "signierte APK generieren ..." auszuführen, werden Sie feststellen, dass diese Aufgabe nicht ausgeführt wird. Stattdessen müssen Sie es manuell starten:
Fügen Sie Ihre Aufgabe in den "run configurations" wie dies hinzu, und dann sollten Sie in der Lage sein, die Aufgabe von
Wenn Sie diese Methode verwenden, müssen Sie im buildTypes
-Teil der Datei keinen Code hinzufügen.
Tags und Links android gradle apk android-studio