java - 在 Java/Gradle 环境中访问资源

标签 java android android-studio gradle resources

我的问题类似于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

但似乎没有任何效果。

也许我使用了错误的类加载器,但它实际上看起来还不错。 ClassLoader debugging paths

加载资源的正确路径是什么?还有一件事要提:在我的例子中,项目“myproject”是一个加载资源的库,如果有某种相关性,它会从另一个测试项目中调用。

最佳答案

正确的路径是/templates/myresource.bmp

有关详细信息,请参阅此答案:https://stackoverflow.com/a/3727998/1743880 .

关于java - 在 Java/Gradle 环境中访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532374/

相关文章:

Android Studio编辑器红色警告-Suspend : Thread Log message: No

java - 尝试了解 snmp4j Agent JMX 的作用以及它是否适合我的需要

java - adb shell 将当前所有目录复制到新文件夹

java - android studio 找不到 java.nio.file

java - 将 POJO 转换为 XML

android - 如何对齐android布局中的按钮以在移动网站中制作标签栏?

java - 在android中的textview上创建一条水平线

java - Java 8 向前兼容 Java 11 吗?

java - 为 Tomcat 启用目录列表

java - 为什么 Hibernate 转而使用 LONG 而不是 CLOB?