使用Android Studio 2.0 Preview 5和android gradle插件2.0.0-alpha5,就无法再扫描带注释的类。
那是因为使用Instant Run,apk被切成几部分。

用加载dex文件

DexFile dex = new DexFile(context.getApplicationInfo().sourceDir);


导致以下异常:

java.io.IOException: No original dex files found for dex location /data/app/<...>.Android-1/base.apk


我不想禁用即时运行。还有其他方法可以加载DexFile或拆分的DexFiles吗?

最佳答案

简短的答案是:是的,它不再起作用。

长答案是:使用自定义javax.annotation.processing.Processor并生成代码。您可以将具有android-apt的处理器集成到gradle构建过程中。

我有一个简单的示例here,该示例显示如何收集带注释的类以及如何生成静态注册表。

10-08 19:03