背景
Android Studioでは、異なるビルドタイプがあり、それぞれに独自の構成があり、プロダクトフレーバーに似ています(ここ)
問題
アプリをどこかにインストールするたびに、それを見ただけで、リリースかデバッグかのどちらのタイプであるかがすぐにわかるようにしたいです。
このためには、build.gradle ファイルを使用できると思います:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
}
}
問題は、そこに何を入れたらよいか分からないことです。アプリ名を変えたいのですが (文字列は翻訳されたまま文字列ファイルに残しておきたい)、アプリ内の何かのスタイルを変えたいのですが (たとえば、アクション バーの色)。
私は「resValue」を使用できることを発見しました(それについて調べましたここ) ですが、何らかの理由で、何をしてもコンパイルされません。
- リソースがすでに宣言されている場合(翻訳されたアプリ名など)、リソースが重複していると表示されます。
- リソースが宣言されていない場合、コード/XML 経由でアクセスすることはできません。
質問
ビルド タイプに異なるリソース値がすでに存在する場合でも、そのリソース値を使用するにはどうすればよいですか?
ベストアンサー1
ビルド タイプに異なるリソース値がすでに存在する場合でも、そのリソース値を使用するにはどうすればよいですか?
これらはすでにmain
ソースセットに存在します。関心のある他のビルド タイプ用のソースセットを追加し、必要なリソースをオーバーライドします。
例えば、このサンプルプロジェクトmain
ソースセットとソースセットがありますdebug
。どちらもapp_name
に文字列リソースがありますres/values/strings.xml
が、値が異なります。debug
ビルドでは、debug
リソースのソースセット バージョンが使用されます。その他のビルド (例: release
) では、debug
ソースセットは完全に無視され、main
リソースのソースセット バージョンが使用されます。
私がそうすることに注意してくださいないソースセットが必要ですrelease
。特にリソースをオーバーライドする場合は、これで問題ありません。ソースセットは、使用しているすべてのビルド タイプではなく、そのビルド タイプに対して何かを変更する場合にのみ必要です。