我希望根据产品的风格设置不同的图像,如果调试或发布,res文件夹的正确设置是什么?
在我的build.gradle中:
productFlavors {
flavor1 {
applicationId "com.myapp.flavor1"
}
flavor2 {
applicationId "com.myapp.flavor2"
}
}
buildTypes {
debug {
applicationIdSuffix '.debug'
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
shrinkResources true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
在我的文件夹结构中,我现在有:
src/flavor1/res
/flavor2/res
/main/res
/debug/res
我已经尝试在我的调试文件夹中将flavor1和flavor2作为带有资源的子文件夹,但这不适用。只有在调试中有一个res文件夹才会产生两种风格的相同资产,而我希望它们不同。那么我如何设置项目,以便根据调试/发布和不同的产品风格我有不同的图像?
编辑:
更新了文件夹结构
答案 0 :(得分:1)
来自android build variants docs,
Gradle会根据您的构建类型和产品口味自动创建构建变体,并根据
命名它们class Sample include DomainModel field :numbers, :type => Integer, :collection => true end
因此,在您的情况下,您已经有4种变体。如果你想为它们设置不同的源集,你可以按如下方式使用它们
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
PermissionsStartOnly=true
ExecStartPre=/usr/bin/mkdir /var/run/mongodb
ExecStartPre=/usr/bin/chown -R mongod:mongod /var/run/mongodb
ExecStart=/usr/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid
product-flavor Build-Type
等等。请注意命名约定
答案 1 :(得分:0)
你应该试试这个
productFlavors {
flavor1 {
applicationId "com.myapp.flavor1"
}
flavor2 {
applicationId "com.myapp.flavor2"
}
}
sourceSets.flavor1 {
res {
srcDir 'flavor1'
}
resources {
srcDir 'flavor1'
}
}
sourceSets.flavor2 {
res {
srcDir 'flavor2'
}
resources {
srcDir 'flavor2'
}
}
}
答案 2 :(得分:0)
这实际上比你想象的要容易。
您目前有:
src/flavor1/res
/flavor2/res
/main/res
/debug/res
只需添加:
src/flavor1Debug/res
/flavor1Release/res
/flavor2Debug/res
/flavor2Release/res
那里的资源将覆盖不太具体的文件夹中的资源。
构建变体' Android Studio中的UI有助于确认最终的可能性。
我自己使用此模式用于Google Maps API密钥,在我的情况下,每个客户(风格)需要不同,并且由于应用程序签名的不同,在发布和调试之间已经有所不同。