正在 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。在我看来,路径有点不正确。我尝试了以下路径:
- /myresource.bmp
- myresource.bmp
- template/myresource.bmp
- resources/templates/myresource.bmp
- ../../resources/main/templates/myresource.bmp
但似乎没有任何效果。
也许我使用了错误的类加载器,但它实际上看起来还不错。
加载资源的正确路径是什么?还有一件事要提:项目 'myproject' 在我的例子中是一个加载资源的库,它是从另一个测试项目调用的,如果它有某种相关性的话。
正确的路径是/templates/myresource.bmp
。
有关详细信息,请参阅此答案:。
我的问题类似于 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
- template/myresource.bmp
- resources/templates/myresource.bmp
- ../../resources/main/templates/myresource.bmp
但似乎没有任何效果。
也许我使用了错误的类加载器,但它实际上看起来还不错。
加载资源的正确路径是什么?还有一件事要提:项目 'myproject' 在我的例子中是一个加载资源的库,它是从另一个测试项目调用的,如果它有某种相关性的话。
正确的路径是/templates/myresource.bmp
。
有关详细信息,请参阅此答案:。