Android Studio:如何配置 Java 模块以包含嵌入式资源?
Android Studio: How to configure Java module to contain embedded resources?
我有几个 XML 文件要包含在 JAR 文件中。
我应该将这些文件放在我的模块中的什么位置,我如何告诉 Android Studio 在我编译时将它们添加到 JAR 中?
在代码中,如何使用 java.io.File
API 获取这些文件?
请记住,虽然我在 Android Studio 上,但我说的是普通 Java 模块,而不是 Android 模块。
经过大量研究和头痛之后,这是我找到的解决方案:
1- 在 Android Studio 中,切换到 "Project" 视图。
2- 添加一个目录到模块的根目录。称它为 "assets" 之类的东西;这就是您的资源将流向的地方。
3- 将您的资源添加到目录中。
4- 在模块的 Gradle 文件顶部添加 sourceSets.main.resources.srcDirs = [ "assets/" ]
。
5- 编译时,您的文件现在已捆绑在 jar 中。在代码中,您现在可以通过执行以下操作获得引用文件的 InputStream
:
ClassLoader classLoader = this.getClass().getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("stages/stage_1/map.tmx");
我有几个 XML 文件要包含在 JAR 文件中。
我应该将这些文件放在我的模块中的什么位置,我如何告诉 Android Studio 在我编译时将它们添加到 JAR 中?
在代码中,如何使用 java.io.File
API 获取这些文件?
请记住,虽然我在 Android Studio 上,但我说的是普通 Java 模块,而不是 Android 模块。
经过大量研究和头痛之后,这是我找到的解决方案:
1- 在 Android Studio 中,切换到 "Project" 视图。
2- 添加一个目录到模块的根目录。称它为 "assets" 之类的东西;这就是您的资源将流向的地方。
3- 将您的资源添加到目录中。
4- 在模块的 Gradle 文件顶部添加 sourceSets.main.resources.srcDirs = [ "assets/" ]
。
5- 编译时,您的文件现在已捆绑在 jar 中。在代码中,您现在可以通过执行以下操作获得引用文件的 InputStream
:
ClassLoader classLoader = this.getClass().getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("stages/stage_1/map.tmx");