如何为自定义源集图像资源配置构建变量?

时间:2019-07-22 22:27:27

标签: android-studio build.gradle

我有一个带有自定义文件夹的自定义资源构建版本。

而不是 从主应用程序覆盖资源-通过创建具有相同名称的自定义资源, ..我希望拥有仅存在于 custom文件夹

中的自定义图像名称

我对解决方案的尝试基于这些线程中的答案,这些线程讨论了如何设置自定义资源集:

以下是我在尝试访问该自定义资源时遇到的错误,以及build.gradle和清单代码。 我想念什么?

模块目录结构:

注意:

  • /main具有 ic_launcher.png
  • /variantBeta_具有 ic_launcher_beta_logo.png

enter image description here

遇到此错误:

  

Android资源链接失败   找不到/Users/git/sandbox/build/intermediates/merged_manifests/variantBeta_Debug/AndroidManifest.xml:42:错误:资源mipmap / ic_launcher_beta_logo.png(aka com.demo.sandbox.betaVariant:mipmap / ic_launcher_beta_logo.png)。   错误:处理清单失败。

enter image description here

build.gradle:

    flavorDimensions "icecream"
    productFlavors {

        // underscore is added at end so that bulid variant name has spacing for _Debug, _Release
        variantAlpha_ {

            dimension "icecream"
            applicationId "com.demo.sandbox.alphaVariant"
            manifestPlaceholders = [
                    appName  : "A-Variant App",
                    appIcon: "@mipmap/ic_launcher",
            ]
            versionCode 1
            versionName "1.0"
        }

        variantBeta_ {

            dimension "icecream"
            applicationId "com.demo.sandbox.betaVariant"
            manifestPlaceholders = [
                    appName  : "B-Variant App",
                    appIcon: "@mipmap/ic_launcher_beta_logo.png",
            ]
            versionCode 1
            versionName "1.0"
        }
    }

    sourceSets {

        variantAlpha_ {
            res.srcDirs = ['src/res']
        }

        variantBeta_ {
            // Other variations attempted
            // res.srcDirs = ['src/variantBeta_/res']
            // res.srcDirs += ['src/variantBeta_/res']
            res.srcDirs += ['variantBeta_/res']
        }
    }

AndroidManifest.xml:

<application
    tools:replace="android:label"
    android:allowBackup="true"
    android:label="${appName}"
    android:icon="${appIcon}"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
   // ..
</application>

0 个答案:

没有答案