我的问题与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 / path下。
现在,每当我执行该代码时,我只会得到null。对我而言,似乎路径有些不正确。我尝试了以下路径:
但似乎没有任何效果。
也许我使用了错误的类加载器,但实际上看起来还不错。
加载资源的正确途径是什么?还有一件事需要提及:项目' myproject'在我的例子中是一个加载资源的库,如果它在某种程度上相关,则从另一个测试项目调用它。
答案 0 :(得分:1)
正确的路径为/templates/myresource.bmp
。
有关详细信息,请参阅此答案:https://stackoverflow.com/a/3727998/1743880。