web-dev-qa-db-ja.com

ビルドタイプ(デバッグとリリース)を使用して異なるスタイルとアプリ名を設定する方法は?

バックグラウンド

Android Studioでは、異なるビルドタイプを使用でき、それぞれに独自の構成があり、product-flavorsに似ています( here

問題

アプリをどこかにインストールするたびに、それを見るだけで、リリースまたはデバッグのどちらのタイプであるかがすぐにわかるようにしたいと思います。

このため、私はbuild.gradleファイルを使用できると思います:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
    }
}

何があるかわからない。アプリ名を変えたい(しかも、文字列ファイルに翻訳された文字列が含まれている)ようにし、アプリ内の何かのスタイルを異なるように設定したい(たとえば、アクションバーの色) 。

「resValue」を使用できることがわかりました(約 here )が、何らかの理由で、私が何をすべきか、それはコンパイルされません:

  • リソースがすでに宣言されている場合(翻訳されたapp-nameなど)、リソースが重複していると表示されます
  • リソースが宣言されていない場合、code/xmlを介してリソースに到達できません。

質問

すでに存在する場合でも、ビルドタイプに異なるリソース値を使用するにはどうすればよいですか?

15

すでに存在する場合でも、ビルドタイプに異なるリソース値を使用するにはどうすればよいですか?

それらはmainソースセットにすでに存在しています。対象となる他のビルドタイプのソースセットを追加します。ここで、必要なリソースをオーバーライドします。

たとえば、 このサンプルプロジェクト では、mainソースセットとdebugソースセットがあります。どちらもapp_nameres/values/strings.xml文字列リソースがありますが、値が異なります。 debugビルドでは、リソースのdebugソースセットバージョンが使用されます。その他のビルド(releaseなど)では、debug sourcesetは完全に無視され、リソースのmain sourcesetバージョンが使用されます。

releaseソースセットを持っているないことに注意してください。特にリソースをオーバーライドする場合、これは完全に問題ありません。使用しているすべてのビルドタイプではなく、そのビルドタイプの何かを変更する場合にのみ、ビルドタイプのソースセットが必要です。

20
CommonsWare