我有一个使用dagger-2和grpc的java项目,当我尝试使用./gradlew build构建它时出现以下错误:
> java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes
是应该在dagger-2依赖项中提供的MoreTypes,还是应该在类路径上提供依赖?
这是gradle.build文件内容的相关部分:
plugins {
id "net.ltgt.apt" version "0.10"
id "com.google.protobuf" version "0.8.1"
id "java"
}
dependencies {
compile 'io.grpc:grpc-all:1.5.0'
compile 'com.google.dagger:dagger:2.14'
apt 'com.google.dagger:dagger-compiler:2.14'
testApt 'com.google.dagger:dagger-compiler:2.14'
}
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
答案 0 :(得分:4)
这是在2.14.1中修复的Dagger 2.14中的问题。请参阅issue 994," Dagger 2.14打破构建":
此时我没有将问题隔离到一个小样本项目,但我看到的可能原因如下,可能是指针。在构建的这一部分中,我没有明确依赖Google Auto库。
java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes
在2.14.1中确认已修复,其中包含this commit。