【发布时间】:2016-05-14 10:58:42
【问题描述】:
我想在我的注释处理器中访问我的 Android Studio 项目中的资源。
我首先尝试使用 filer 中的 getResource 方法:
FileObject fo = processingEnv.getFiler().getResource(StandardLocation.SOURCE_PATH, "", "src/main/res/layout/activity_main.xml");
,但它总是抛出一个异常,只是将“src/main/res/layout/activity_main.xml”作为消息返回。
接下来认为我尝试过的是
this.getClass().getResource("src/main/res/layout/activity_main.xml")
,但这总是返回 null。
我尝试使用的最后一个想法是:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
Iterable<? extends File> locations = fm.getLocation(StandardLocation.SOURCE_PATH);
for (File file : locations) {
System.out.print(file.getAbsolutePath());
}
,但是会抛出空指针异常
【问题讨论】:
-
在适用于传统 Java(Android 除外)的工具中对术语“资源”的任何引用均指 Java/JAR 资源,而不是 Android 资源。
-
我找到了解决办法
标签: java android android-resources annotation-processing