我的问题是,在我的项目中添加了味道后,包名称与实际源不同的味道似乎在访问android_res/draable
中的文件时遇到了问题。
更具体地说,我有一个调用以下图像的html视图。
<img src="file:///android_res/drawable/image.png">
该图像显示在production flavor中,其包名与java文件的目录相同,但不适用于beta flavor:
productFlavors {
production {
packageName "com.company.myapp"
}
beta {
packageName "com.company.beta"
}
}
其中包含java文件的实际目录是
java/com/company/myapp
这很奇怪,因为资源甚至不在该文件夹中。
更新的答案
你是否正确设置了你的风味文件夹?
如果您有两种口味(flavorOne、flavorTwo),则需要相应地设置源文件夹。
您的构建。gradle文件应如下所示:
productFlavors {
flavorOne {
applicationId "com.package.name"
versionCode 1
versionName "1.0"
}
flavorTwo {
applicationId "com.package.name.two"
versionCode 1
versionName "1.0"
}
}
下面是这两种风格的文件夹结构:
src
---|main
--------|java
-------------|com.package.name
--------|res
-------------|drawable
---|flavorOne
--------|java
-------------|com.package.name
--------|res
-------------|drawable
---|flavorTwo
--------|java
-------------|com.package.name
--------|res
-------------|drawable
将每种口味的绘图文件放在它的关联文件夹中。因此,您将拥有image.png
文件,其中味道一
在该绘图文件夹中,image.png
用于味道二
在味道二
绘图文件夹中。
这样,本地化将适用于每种口味。
您不应该创建“R”类。这些是自动生成的。
旧答案
不是真正解决你的问题,而是另一种方法。
您可以将图像文件移动到资产文件夹并使用它
<img src="file:///android_asset/image.png">
gradle中不支持packageName。Gradle在applicationId和packageName之间有区别(请参见http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename)这意味着应该能够使资源包名称与应用程序的包标识符不同。
遗憾的是file:///android_resWeb视图中的URL方案。
在我的例子中,我可以通过在另一个包中创建一个具有正确内部类和一个公共静态final int字段的R类来解决这个问题,该字段是用真实R文件中的值初始化的。这是一种黑客行为,在重命名资源后无法生存,如果您需要访问大量资源,则不方便。
因此,在您的情况下,这看起来像是将其添加到beta flavor源文件目录:
package com.company.beta;
class R
{
class drawable
{
public static final int image = com.company.myapp.R.drawable.image;
}
}
问题内容: 我从学习Spring开始,我创建了一个基本项目,该项目创建数据库,插入值,然后在Web浏览器中打印它。我的问题是,当我将RestController和主类放在同一个包中时- 可以,但是我想将其分发到其他包中,而当我创建新包时,移动RestController则不起作用。让我们见面解释: 我的项目看起来像: 我的控制器看起来: 当一切都在包,我写的网络浏览器的http://本地主机:80
我想将ListView与其他小部件一起使用,但我不能。当我将容器用于ListView时,我不能查看任何其他小部件。我该怎么做?
我有一个烧瓶服务器运行在http://127.0.0.1:5000和一个vuejs前端运行http://localhost:8080我已经做了api,并用postman测试了它,一切都如预期的那样工作:( > 将请求发布到/登录- (将请求发送至/登录)- 烧瓶API代码: 登录。vue: 指数vue 当我使用邮递员登录时,我得到的响应为;当我使用邮递员获取url/索引时,我得到响应。数据但当我使
问题内容: 我正在编写一个执行scala命令的小型python应用程序。用户可以通过STDIN插入命令,然后python应用将其转发到scala解释器。执行命令后,应用程序将显示操作结果。 这个想法是用来创建一个管道,通过该管道我可以发送命令并读取结果。这个想法很简单,但是没有用。我不明白的是,为什么在打开管道后它们不再起作用。这使得无法在python中读取命令。 这是我正在使用的代码: 问题答案
问题内容: 我正在尝试使用动态变量名称(我不确定它们的实际名称),但是非常像这样: 返回值告诉我它不起作用。我不知道我在寻找什么语法或技术,这使得很难研究。在前面定义。 问题答案: 将它们包装在: 工作实例 使用是创建动态变量的一种方法,简单的示例: