除了AppIcon之外,我有2个使用相同图像和资源的应用。 一个常见的解决方案是为src下的每个应用程序创建一个单独的文件夹,并配置gradle以使用相应的文件夹。
在我的情况下,99%的资源都来自两个应用程序,但只有appicon是不同的。
我是否还必须使用具有不同res文件夹的机制,或者还有一种更简单的方法,所以我不必克隆所有资源?
我以为我可以这样做: 我有一个AndroidManifest条目如下:
<application android:name="bla.bla.MyApplication" android:largeHeap="true" android:icon="@drawable/icon" android:label="@string/app_name">
我可以在gradle中覆盖名称,如下所示,这很好用:
demo {
resValue "string", "app_name", "This is the Demo"
resValue "drawable", "icon", "demoicon"
}
有没有办法以同样的方式覆盖图标名?
正如你在上面的片段中看到的那样,我已经尝试过,但是我得到了一个 重复资源错误,因为我在res / drawable下保存的demoicon是自动生成的。
答案 0 :(得分:0)
如果你的口味就像生产一样:
android.sourceSets.production
{
res.srcDirs = ['res', '/path/to/production/res/dir']
}
然后在你的/ path / to / production / res / dir / drawable- *中你会得到你的启动器图标。
答案 1 :(得分:0)
以下列方式解决:
我不想为不同的构建类型克隆res文件夹,只是为了更改app-icon。
可以使用manifestPlaceholders来完成:
在我的build.gradle中:
buildTypes {
demo {
manifestPlaceholders = [iconpath:"@drawable/icon_timeline_test"]
}
它将替换AndroidManifest中的图标,引用如下:
android:icon="${iconpath}"