2017-10-09 2 views
1

컴파일 중 위의 오류가 발생하여 모든 소스 파일로 이동하지 않습니다. 천천히 문제를 일으키는 변경 사항을 확인한 후, 단검 2 주사가 문제를 일으키는 것으로 나타났습니다.오류 : NotNull에 액세스 할 수 없습니다.

@FragmentScope 
@Subcomponent 
public interface MyComponent { 
    void inject(MyJavaFragment myJavaFragment); 

    void inject(MyJavaClass myJavaClass); 

    void inject(MyKotlinClass myKotlinClass); // <- if change to Java, all works 
} 

MyKotlinClass를 Java 코드에서 Kotlin으로 변환하여 오류가 발생합니다. 이 라이브러리에 있으며, 이미 build.gradle에서 사용하고 있습니다.

kapt "com.google.dagger:dagger-compiler:$daggerVersion" 

왜? (참고 : 응용 프로그램 코드는 원래 Java이므로 필요하지 않으면 Kotlin을 모두 변경하지 않았습니다.) 발견 조사의 긴 시간 후

답변

2

, 그 여전히 자바 주석

annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion" 

그러나 위의 질문에서 언급 한 바와 같이 내 라이브러리 kapt을 사용을 사용하여이 라이브러리로 호출하는 기능. 이것이 주석 프로세서의 충돌이었습니다. 대신 Java 주석 프로세서가 사용되었습니다. 호출 라이브러리 주석 처리기를

kapt "com.google.dagger:dagger-compiler:$daggerVersion" 

으로 변경하면 문제가 해결됩니다. (상단에 apply plugin: 'kotlin-kapt'을 추가해야 함)

관련 문제