手动创建的风味资源无法正确构建

时间:2018-06-28 19:35:13

标签: android android-studio android-gradle android-flavors

我有一个奇怪的问题。我已经想出了解决该问题的方法,但是我很好奇为什么手动尝试创建Flavor的资产文件夹时该方法不起作用。

因此,我想向现有的Android项目中添加一个新的Flavor,该项目已经包含了几种样式。我进入了 app级build.gradle 文件,并添加了新的样式。在此示例中,我要添加Flavor_Two

defaultConfig {
    applicationId "com.fancyapp.APP_NAME"
}
flavorDimensions "client"
productFlavors {
    Flavor_One {
        applicationId 'com.fancyapp.one'
        dimension "client"
    }
    Flavor_Two {
        applicationId 'com.fancyapp.two'
        dimension "client"
    }
}

然后,我手动进入文件浏览器并创建资产文件夹和文件: "/app/src/Flavor_Two/res/values/strings.xml"
"/app/src/Flavor_Two/res/mimap-hdpi/icon.png"

构建样式时,它不使用Flavor_Two资源,而是使用默认值,即com.fancyapp.APP_NAME而不是com.fancyapp.two。该应用程序崩溃是因为它也在通过 PackageName 查找本地数据库,该数据库应该为com.fancyapp.two,但找到的是com.fancyapp.APP_NAME

我确定是否删除了手动创建的文件夹Flavor_Two,而是通过Android Studio的菜单"File > New > Android Resource Directory"并选择了Flavor_Two作为Source Set和{{1} }作为Values,创建了Resource Type文件夹和父文件夹。它与我之前手动创建的文件夹名称相同。然后,我复制了"/app/src/Flavor_Two/res/values"文件。我只需要通过Android Studio的菜单创建初始文件夹即可。我可以复制以前使用的“ mimap-hdpi”文件夹,这样味道就可以正确建立。

我的问题是这样的:
为什么Android Studio和Gradle看不到我手动创建的文件夹,而如果将来我想手动执行所有操作,那么通过菜单使该文件夹执行哪些操作呢?

感谢任何有识之士。


Android Studio版本:3.1.3
Gradle Build版本:3.1.3
Buildtools版本:27.0.3
编译的SDK版本:23
操作系统:Windows 10

1 个答案:

答案 0 :(得分:1)

应该可以了。可能只是同步问题。尝试手动创建文件夹,然后在手动创建目录后在Android Studio中点击“与文件系统同步”,然后单击“与Gradle文件同步项目”工具栏图标。保存图标旁边的。