【发布时间】:2015-02-16 07:18:47
【问题描述】:
我的问题类似于this 问题,但不幸的是,他们的回答对我不起作用。我也有一个基于 gradle 的 java 项目,结构如下
.
├── myproject
│ ├── src
│ | └── main
│ | ├── java
│ | └── resources
│ | └── templates
│ | └── myresource.bmp
| ├── build
| | ├── classes
| | └── resources
| | └── main
│ | └── templates
│ | └── myresource.bmp
由于我想在 Android 和 Windows 上运行我的代码,我正在使用以下方式访问资源
ClassLoader classLoader = Thread.currentThread().getContextClassLoader()
res = classLoader.getResourceAsStream("templates/myresource.bmp");
这以前在 Eclipse 中有效,因为我只是将资源放入 src 文件夹,然后将其复制到目标目录。但是在迁移到 Android Studio 和 Gradle 时,我将资源移到了资源文件夹中,我认为它们应该属于该文件夹,现在它不再位于 src/ 路径下。
现在,每当我执行该代码时,我只会得到 null。在我看来,路径有些不正确。我尝试了以下路径:
- /myresource.bmp
- myresource.bmp
- 模板/myresource.bmp
- 资源/模板/myresource.bmp
- ../../resources/main/templates/myresource.bmp
但似乎没有任何效果。
也许我使用了错误的类加载器,但它实际上看起来没问题。
加载资源的正确路径是什么?还要提一件事:在我的情况下,项目“myproject”是一个加载资源的库,如果相关的话,它会从另一个测试项目中调用。
【问题讨论】:
标签: java android android-studio gradle resources