在处理器中找不到 Javapoet
Javapoet not found in processor
我创建了一个 Android 库,它使用 JavaPoet 生成 类。它适用于我的本地工作区;即使我将库模块包含到另一个项目中。
现在我正尝试通过 bintray 将我的项目放到网上。项目已正确上传,但当我将其包含在新项目中并构建项目时,我收到此消息:
Error:Bad service configuration file, or exception thrown while
constructing Processor object: javax.annotation.processing.Processor:
Provider me.aflak.filter_processor.FilterProcessor could not be
instantiated: java.lang.NoClassDefFoundError:
com/squareup/javapoet/TypeName
我猜这是因为我管理依赖项的方式...编译时、运行时的东西...
这是 处理器 build.gradle :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':filter-annotation')
api 'com.squareup:javapoet:1.9.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'com.google.auto.service:auto-service:1.0-rc3'
}
这是注释 buid.gradle :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.8.1'
}
这就是我将库包含在空项目中的方式:
// build.gradle project
repositories {
maven{
url 'https://dl.bintray.com/omaflak/maven'
}
}
// build.gradle module
dependencies {
compile 'me.aflak.libraries:filter-annotation:1.0'
annotationProcessor 'me.aflak.libraries:filter-processor:1.0'
}
有人能指出我正确的方向吗?谢谢!
我终于找到了解决方案(虽然有点随机 :p)。
我必须在库模块中添加 mavenLocal()
。
我创建了一个 Android 库,它使用 JavaPoet 生成 类。它适用于我的本地工作区;即使我将库模块包含到另一个项目中。
现在我正尝试通过 bintray 将我的项目放到网上。项目已正确上传,但当我将其包含在新项目中并构建项目时,我收到此消息:
Error:Bad service configuration file, or exception thrown while constructing Processor object: javax.annotation.processing.Processor: Provider me.aflak.filter_processor.FilterProcessor could not be instantiated: java.lang.NoClassDefFoundError: com/squareup/javapoet/TypeName
我猜这是因为我管理依赖项的方式...编译时、运行时的东西...
这是 处理器 build.gradle :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':filter-annotation')
api 'com.squareup:javapoet:1.9.0'
compile 'com.google.code.gson:gson:2.8.1'
compile 'com.google.auto.service:auto-service:1.0-rc3'
}
这是注释 buid.gradle :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.8.1'
}
这就是我将库包含在空项目中的方式:
// build.gradle project
repositories {
maven{
url 'https://dl.bintray.com/omaflak/maven'
}
}
// build.gradle module
dependencies {
compile 'me.aflak.libraries:filter-annotation:1.0'
annotationProcessor 'me.aflak.libraries:filter-processor:1.0'
}
有人能指出我正确的方向吗?谢谢!
我终于找到了解决方案(虽然有点随机 :p)。
我必须在库模块中添加 mavenLocal()
。