我的问题类似于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
- 我的资源.bmp
- 模板/我的资源.bmp
- 资源/模板/myresource.bmp
- ../../resources/main/templates/myresource.bmp
但似乎没有任何效果。
也许我使用了错误的类加载器,但它实际上看起来还不错。
加载资源的正确路径是什么?还有一件事要提:在我的例子中,项目“myproject”是一个加载资源的库,如果有某种相关性,它会从另一个测试项目中调用。
最佳答案
正确的路径是/templates/myresource.bmp
。
有关详细信息,请参阅此答案:https://stackoverflow.com/a/3727998/1743880 .
关于java - 在 Java/Gradle 环境中访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532374/