这是我的问题。我有一个运行良好的应用程序。我希望同一个应用程序有两个不同的包名和drawable文件夹。所以我做了以下操作:
productFlavors {
AppOne {
applicationId 'com.AppOne'//Package name for AppOne
}
AppTwo{
applicationId 'com.AppTwo'//Package name for AppTwo
}
}
然后我在我的src文件夹内创建了两个不同的文件夹。项目结构看起来像这样:
src
-> AppOne
->drawable
->Image for AppOne
-> AppTwo
->drawable
->Image for AppTwo
-> UnchangedApp
->drawable
->Image for someImage
据我理解,如果我从Flavor AppTwo中获取构建,则将使用“AppTwo的图像”(如果我没有弄错的话)。 这对于具有不同包名称和不同图标的单独应用程序也可以正常工作。 问题在于,在我的原始文件夹中有一个本地html文件。 我在代码中像这样引用它。
Webview.loadUrl("file:///android_res/raw/mytemplate.html");
这两个应用的HTML文件也会发生变化,因此我为两个版本创建了“raw”文件夹。现在项目结构如下:
src
-> AppOne
->drawable
->Image for AppOne
->raw
->mytemplate.html
-> AppTwo
->drawable
->Image for AppTwo
->raw
->mytemplate.html
-> UnchangedApp
->drawable
->Image for someImage
->raw
->sometemplate.html
现在当我使用flavor 1或flavor 2运行我的应用程序时,webview会出现错误,显示无法找到file:///android_res/raw/mytemplate.html文件。
我犯了什么错误?在drawable文件夹中的图标正在更改,但raw文件夹中的html文件没有更改。有人能帮忙吗?非常感谢您的任何帮助。谢谢。
main
源集中拥有的任何内容合并到每个变体中,因此如果您没有任何特定于口味的代码,您可以从src/main
源集中“继承”这些内容,包括manifest.xml
文件,这就是为什么您不希望在main
源集和您的变体中有两个同名类的原因。 - Trash CangetResources().openRawResource(R.raw.resource_id)
吗? - Trash Can