2017-10-03 22 views
0

단검 2를 통합하여 단위 테스트에 사용하려고합니다. 불행히도 시험을 볼 때마다 java.lang.NoClassDefFoundError: javax/inject/Provider이 나옵니다.안드로이드에서 단조 의존성을 사용하십시오 Unit Test

나는이 같은 Gradle을 추가 javax의 의존성이 있습니다 이 compileprovided 변경 : 내가 뭘하려

depdencencies { 
    ... 
    provided 'javax.annotation:jsr250-api:1.0' 
} 

. 이 종속성이있는 compiletestCompile을 모두 추가합니다. 나는 또한 testProvided을 시도했지만 아무 것도 작동하지 않았다.

분명히 문제는이 종속성을 제공하는 것이 컴파일 시간에만 제공된다는 것입니다. 불행히도 그 밖의 일은 아무 것도하지 않았으므로 어떤 제안이든 열려 있습니다. 더 자세한 정보가 필요하면 질문하십시오. 감사!

답변

0

나는 응용 프로그램/build.gradle

.... 

apt 'com.google.dagger:dagger-compiler:2.11' 
compile 'com.google.dagger:dagger:2.11' 
provided 'javax.annotation:jsr250-api:1.0' 
provided 'org.glassfish:javax.annotation:10.0-b28' 


.... 
+0

감사와 단위 테스트를위한 안드로이드 스튜디오 2.2.3 dagger2에 사용합니다. 제 경우에는 왜 작동하지 않는지에 대한 정보를 제공해 줄 수 있습니까? 또한 javax annotation에 대해 두 개의 '제공된'종속성을 모두 사용해야하는 이유는 무엇입니까? – definera

+0

충분하다 'org.glassfish : javax.annotation : 10.0-b28' 죄송합니다. 설명 할 수 없습니다. Dagger 자습서를 공부하고 권장 된 buil.gradle을 사용했습니다. – eurosecom