Android studio 构建变体和不同的应用程序图标

Android studio 构建变体和不同的应用程序图标,android-studio,icons,android-gradle-plugin,android-resources,Android Studio,Icons,Android Gradle Plugin,Android Resources,我有两个应用程序使用相同的图像和资源,除了AppIcon。 一个常见的解决方案是在src下为每个应用程序提供一个单独的文件夹,并将gradle配置为使用相应的文件夹 在我的例子中,99%的资源都来自这两个应用程序,但只有appicon不同 我是否仍然需要使用具有不同res文件夹的机制,或者是否还有更简单的方法,以便不必克隆所有资源 我想我可以这样做: 我有一个AndroidManifest条目,如下所示: <application android:name="bla.bla.MyAppli

我有两个应用程序使用相同的图像和资源,除了AppIcon。 一个常见的解决方案是在src下为每个应用程序提供一个单独的文件夹,并将gradle配置为使用相应的文件夹

在我的例子中,99%的资源都来自这两个应用程序,但只有appicon不同

我是否仍然需要使用具有不同res文件夹的机制,或者是否还有更简单的方法,以便不必克隆所有资源

我想我可以这样做: 我有一个AndroidManifest条目,如下所示:

<application android:name="bla.bla.MyApplication" android:largeHeap="true" android:icon="@drawable/icon" android:label="@string/app_name">
有没有办法以同样的方式覆盖iconname

正如您在上面的代码片段中所看到的,我已经尝试过了,但是我得到了一个
重复资源错误,因为在res/drawable下保存的我的demoicon是自动生成的。

如果您喜欢产品名称,则:

android.sourceSets.production 
{
    res.srcDirs = ['res', '/path/to/production/res/dir']
}

然后在你的/path/to/production/res/dir/drawable-*中,你会有你的启动图标。

如果你的口味名称像production,那么:

android.sourceSets.production 
{
    res.srcDirs = ['res', '/path/to/production/res/dir']
}

然后在您的/path/to/production/res/dir/drawable-*中,您将有您的启动器图标。

以以下方式将其隔离:

我不想为不同的构建类型克隆res文件夹,只想更改应用程序图标

可以使用占位符执行此操作:

在我的build.gradle中:

buildTypes {
demo {

            manifestPlaceholders = [iconpath:"@drawable/icon_timeline_test"]
        }
当引用如下内容时,它将替换AndroidManifest中的图标:

 android:icon="${iconpath}" 

通过以下方式将其隔离:

我不想为不同的构建类型克隆res文件夹,只想更改应用程序图标

可以使用占位符执行此操作:

在我的build.gradle中:

buildTypes {
demo {

            manifestPlaceholders = [iconpath:"@drawable/icon_timeline_test"]
        }
当引用如下内容时,它将替换AndroidManifest中的图标:

 android:icon="${iconpath}" 

但是,然后我必须将hole res资源从测试文件夹clonne到生产文件夹,并且我必须将具有大量资源的文件夹加倍,对吗?我想分享除图标之外的所有其他内容。但是我必须将hole res资源从测试文件夹clonne到生产文件夹,并且我必须将包含大量资源的文件夹加倍,对吗?我想分享所有其他的东西,除了图标。