私はアンドロイドアプリケーションを持っていますが、私は別のフレーバーを持っていたいと思います。具体的には、2つのフレーバーを持ち、それぞれのフレーバーごとに異なるストリング(異なるstrings.xml
ファイル)を使用して、いくつかのアイコンが異なる場合があります。gradleを使用して異なるアプリケーションのフレーバーに異なるリソースを使用する
私はプロジェクトのルートフォルダにある2つのフォルダ作成しようとした。この結果は、以下の複数のエラーを取得し、文字列のどれもが認識されないことであるflav1
とflav2
をし、次のbuild.gradle
android {
compileSdkVersion "Google Inc.:Google APIs:15"
buildToolsVersion "17.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
productFlavors {
flav1 {
packageName "com.ic.flav1"
}
flav2 {
packageName "com.ic.flav2"
}
}
android.sourceSets.flav2 {
res {
srcDir 'flav2'
}
resources {
srcDir 'flav2'
}
}
android.sourceSets.flav1 {
res {
srcDir 'flav1'
}
resources {
srcDir 'flav1'
}
}
}
を使用タイプ:
build FAILED :
error: Error: No resource found that matches the given name (at 'contentDescription' with value '@string/txt_addr').
何か不足していますか? build.gradleはどのようにすべきですか?
おかげ
"res"と "resources"の違いは何ですか?私は初心者から来ている初心者です...私は私のプロジェクトのフォルダを参照してくださいが、私はそれが何か、どのようにあなたは別の "資源"を各味のために持っているのか分からないのですか? –
Resとリソースは同じことです。これは、ASが使用する命名規則(res)です。 フレーバーごとに異なるリソースを使用すると、同じリソースIDに対して異なるイメージを持つことができます(たとえば、R.id.logoは異なるフレーバーの異なるイメージになる可能性があります) –