正在 Java/Gradle 环境中访问资源

Accessing resource in Java/Gradle Environment

我的问题类似于 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。在我看来,路径有点不正确。我尝试了以下路径:

但似乎没有任何效果。

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

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

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

有关详细信息,请参阅此答案:。