资源没有从不同的应用风格中获得设置

时间:2018-11-28 12:48:46

标签: android android-productflavors android-build-flavors

https://drive.google.com/file/d/1cIoD5Uw5Jkut--qsJUX_hYBx13gbFNM2/view

请参见上面的视频

我有一个具有2种不同口味的应用程序。我添加了不同的应用程序图标和一些要替换的图像。图标和背景图像可以很好地适应另一种口味,但是不会从资源中拾取一个图像,它仅显示默认图像。

等级:

productFlavors {
    fibodo {
        applicationId "com.fibodo.consumer"
        versionCode 1
        versionName "4.0.16"
    }

    jdsports {
        applicationId "com.fibodo.jdsports"
        versionCode 1
        versionName "1.0.0"
    }
}

以下是屏幕截图,其中清楚地显示了预览效果,但是在运行应用程序时,它没有显示各自的徽标

fibodo debug

jdDebug

jd screenshot

fibodo screenshot

2 个答案:

答案 0 :(得分:0)

使用调味剂时,需要将调味剂放在单独的文件夹中,如果您具有以下两种调味剂,则需要添加调味剂:

productFlavors {
    fibodo {
        applicationId "com.fibodo.consumer"
        versionCode 1
        versionName "4.0.16"
    }

    jdsports {
        applicationId "com.fibodo.jdsports"
        versionCode 1
        versionName "1.0.0"
    }
}

您应该具有以下文件夹:

src folder

将风味资源添加到它们自己的文件夹中,然后从您的main / res文件夹中删除这些资源。

enter image description here

在这个位置上,每种口味都首先查看其res文件夹以查找资源,如果找不到,他们将查看main / res文件夹,因此,如果将资源放在单独的文件夹中,它们将不会混合。 / p>

答案 1 :(得分:0)

我的猜测是,您正在提供android studio中选择的预览设备所需的资源,但某种程度上缺少测试设备的资源

假设您的预览设备为xhdpi,而仿真器为xxhdpi,则您仅为xhdpi提供资源,因此它仅在预览中可用,而在模拟器中不可用。

肯定有这种情况或类似的情况,设备找不到所需的确切资源,因此它正在使用默认资源!