我一直在研究一个扩展AbstractProcessor
的简单java注释处理器。
我已经能够使用javac -Processor MyProcessor mySource.java
问题是将它集成到使用Android Studio的简单Hello World Android应用程序中。
我首先制作了一个新的Android项目,然后添加了一个单独的模块,我放置了所有的注释处理器代码(MyProcessor类以及它使用的自定义注释)。
然后我将这个新模块添加为HelloWorld android项目的依赖项。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':MyProcessorModule')
}
如何使用处理器根据HelloWorld应用程序中的所有源文件生成代码?
答案 0 :(得分:3)
有一个插件可以让它工作。它与Maven上的模块完美配合,不确定本地.jar文件,但你确定试一试:
这里是插件页面:https://bitbucket.org/hvisser/android-apt
这里是我的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
... add this classpath to your buildscript dependencies
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt' << apply the plugin after the android plugin
dependencies {
// in dependencies you call it
apt 'com.company.myAnnotation:plugin:1.0-SNAPSHOT'
compile 'com.company.myAnnotation:api:1.0-SNAPSHOT'
它应该有用。
答案 1 :(得分:1)
使用android-apt插件。更好的是,派一个已经使用android-apt插件开发本地注释处理器的sample project。
答案 2 :(得分:0)
你正在做的事情是完全正确的,这是我用作图书馆的一个项目的例子:
dependencies {
compile project(':boundservice')
}
当然您还应该做的是将您添加库的模块定义为
android-library
plagin而非申请。
如果您使用New Module
- &gt;执行此操作,则会自动执行此操作Android Library
选项,但也许正如我所理解的这个项目......与Android无关,您应该选择Java Library
选项。
当你这样做并同步build.gradle
文件时(也许有点干净的构建应该也有帮助)你应该能够在Android项目中使用你的类文件。