vik*_*eri 12 android gradle android-webview android-productflavors
我的问题是,在我向我的项目添加了flavor之后,包名称与实际源不同的风味似乎在访问文件时遇到了问题 android_res/drawable.
更具体地说,我有一个调用以下图像的html视图.
<img src="file:///android_res/drawable/image.png">
Run Code Online (Sandbox Code Playgroud)
该图像显示在生产flavor中,其包名称与java文件的目录相同,但它不适用于beta版本:
productFlavors {
production {
packageName "com.company.myapp"
}
beta {
packageName "com.company.beta"
}
}
Run Code Online (Sandbox Code Playgroud)
其中包含java文件的实际目录
java/com/company/myapp
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为资源甚至不在该文件夹中.
更新的答案
您是否正确设置了风味文件夹?
如果您有两种口味(flavorOne、flavorTwo),您需要相应地设置源文件夹。
您的 build.gradle 文件应如下所示:
productFlavors {
flavorOne {
applicationId "com.package.name"
versionCode 1
versionName "1.0"
}
flavorTwo {
applicationId "com.package.name.two"
versionCode 1
versionName "1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,这两种风格的文件夹结构如下:
src
---|main
--------|java
-------------|com.package.name
--------|res
-------------|drawable
---|flavorOne
--------|java
-------------|com.package.name
--------|res
-------------|drawable
---|flavorTwo
--------|java
-------------|com.package.name
--------|res
-------------|drawable
Run Code Online (Sandbox Code Playgroud)
将每种风格的可绘制对象放入其关联的文件夹中。因此,您将在该可绘制文件夹中拥有image.pngfor 的文件,并在可绘制文件夹中拥有for 的文件。flavorOneimage.pngflavorTwoflavorTwo
这样,本地化将适用于每种口味。
您不应该创建“R”类。这些是自动生成的。
旧答案
并不是真正解决您的具体问题,而是另一种方法。
您可以将图像文件移动到资产文件夹并使用它
<img src="file:///android_asset/image.png">
Run Code Online (Sandbox Code Playgroud)