Wie zu verwenden build-Typen (debug vs. release), um verschiedene Stile und app-Namen?
Hintergrund
Auf Android-Studio, können Sie haben verschiedenen Bau-Typen, jeder hat seine eigenen Einstellungen, ähnlich wie Produkt-Aromen (wie gezeigt hier)
Das problem
Ich Wünsche mir, dass jedes mal, wenn ich meine installierte app irgendwo, ich würde sofort wissen, welche Art es war - release oder debug ist, nur durch das betrachten es.
Für diese, ich denke, ich kann mit dem bauen.gradle-Datei :
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
Sache ist die, ich weiß nicht, was dort zu setzen. Ich möchte den Namen der app, anders zu sein (und doch haben die Strings in der strings-Dateien, wie es übersetzt), und ich möchte den Stil von etwas, das zu app unterschiedlich sein (zum Beispiel die Farbe der action bar).
Habe ich gefunden, dass ich verwenden können, "resValue" (gefunden über die es hier), aber aus irgendeinem Grund, egal was ich mache, es wird nicht kompilieren:
- Wenn die Ressource wurde bereits erklärt (wie in der app-Namen, die übersetzt wird), es sagt, die Ressource wird dupliziert
- Wenn die Ressource nicht erklärt, kann ich nicht erreichen es über den code/xml.
Die Frage
Wie verwende ich unterschiedliche Werte, die für die build-Typen, auch wenn es Sie schon gibt?
InformationsquelleAutor der Frage android developer | 2015-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sind bereits in der
main
sourceset. Hinzufügen andere sourcesets für Ihre andere build-Typen von Interesse, wo Sie überschreiben Sie die Ressourcen, die Sie möchten.Beispielsweise in dieses Beispiel-Projekt ich habe eine
main
sourceset und eindebug
sourceset. Beide haben dieapp_name
string-Ressource inres/values/strings.xml
aber mit unterschiedlichen Werten. In einemdebug
bauen, diedebug
sourceset version der Ressource verwendet wird; in allen anderen bauen (z.B.release
), diedebug
sourceset ignoriert völlig, und diemain
sourceset-version der Ressource verwendet wird.Beachten Sie, dass ich tun nicht haben eine
release
sourceset. Besonders beim überschreiben der Ressourcen, das ist völlig in Ordnung-Sie brauchen nur einen sourceset für einen build geben, wenn Sie etwas ändern möchten, die für diesen build geben, nicht für jeden build-Typ, den Sie verwenden.InformationsquelleAutor der Antwort CommonsWare
In Datei - |Projektstruktur|app|Aromen, die wir haben:
In Zeichenfolgen-Ressource-Datei haben wir:
In "onCreate" der MainActivity-Klasse:
Das Ergebnis ist "MyAppTitle v1.3"
InformationsquelleAutor der Antwort Piero