Kotlin에서 "대신 해당 클래스보다 대거 프로세서를 실행하는 것이 좋습니다."


124

kotlin 클래스에 주입 할 때마다 빌드에이 메모가 표시됩니다 (btw, kotlin과 Java가 모두 혼합 된 Android 프로젝트가 있음).

예를 들어이 gradle 작업 후에 : compileStagingDebugJavaWithJavac(StagingDebug는 내 빌드 변형 임) 다음 메시지가 표시됩니다.

"참고 : com.packageNameXXX.CourseDiscoveryMapFragment에 대한 MembersInjector 또는 Factory 생성. 대신 해당 클래스에 대해 대거 프로세서를 실행하는 것이 좋습니다."

CourseDiscoveryMapFragment 코드는 여기에서 볼 수 있습니다.

class CourseDiscoveryMapFragment : Fragment(){

    @Inject
    lateinit var presenter: CourseDiscoveryMapPresenter

    lateinit var mapView: MapView

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

        val view = inflater.inflate(R.layout.fragment_discovery_map, container, false)

        MapsInitializer.initialize(activity)

        mapView = view.mapView
        mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE))

        (activity as BaseActivity)
                .activityComponent.inject(this)
}

그리고 내 ActivityComponent 는 다음과 같습니다.

@ActivityScope
@Subcomponent(modules = ActivityModule.class)
public interface ActivityComponent {

    void inject(BaseActivity baseActivity);

    void inject(CourseDiscoveryMapFragment fragment);

    //Exposed to sub-graphs.
    Activity activity();
}

그래서 저는 자바로 작성된 대거 구성 요소와 모듈을 가지고 있으며 Kotlin에는 대거 주입이 있습니다.

이것이 내가 걱정해야 할 것이 있습니까?

감사합니다.


전체 오류 / 경고 및 관련 코드를 게시 할 수 있습니까?
marcospereira

4
질문에 더 자세한 정보가 필요합니다. 기본적으로 Google 쿼리를 질문으로 작성했습니다.
Jayson Minard

@marcospereira 재 편집! 감사!
Fábio Carballo 16. 01.

4
이봐, 당신은 해결책이나 어쩌면 그 경고에 대한 이유를 찾았습니까?
wojciech_maciejewski

3
여기에 대한 답은 다음과 같습니다 github.com/square/dagger/issues/537
R. Zagórski

답변:


5

당신이 할 수 없을까 두렵습니다. Kotlin에서 종속성 모듈을 작성하지 않는 이유는 무엇입니까?

자바로 종속성 모듈을 작성하려면 다음과 같이 Gradle 스크립트를 구성해야합니다.

 compile 'com.google.dagger:dagger:2.8'
 apt 'com.google.dagger:dagger-compiler:2.8'

하지만 Kotlin에서 종속성 모듈을 작성하려면 다음과 같이 Gradle 스크립트를 구성해야합니다.

compile 'com.google.dagger:dagger:2.8' 
kapt 'com.google.dagger:dagger-compiler:2.8'

dagger는 컴파일 프로세스 중에 종속성 코드를 생성하기 위해 주석 처리 도구가 필요합니다. 따라서 올바른 언어에 따라 올바른 APT (주석 처리 도구)를 사용하면됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.