본문 바로가기

안드로이드/오류해결

[AOS] Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin 오류 해결

반응형

최근에 hilt를 공부했을때 진짜 편리하다고 생각해서 개인 프로젝트에도 적용하려고 큰 맘을 먹고 작업을 시작하고 빌드했을때 

'Expected @HiltAndroidApp to have a value. Did you forget to apply the Gralde Plugin' 오류를 직면했습니다.

 

[AOS] Dagger Hilt - DI

요즘 mvvm 검색하면 항상 붙어 나오는 키워드중 하나가 DI인것 같습니다. ( 요즘이 아니라 한참 오래전이긴 함 ) MVVM을 적용해보면서 코인은 써봤지만 hilt는 'Dagger'의 학습곡선이 상당하다는 얘기

superwony.tistory.com

 

 

검색을 해보니 kotlin버전이 1.5.20일때 발생하는 문제로, 버전을 낮추거나 높히면 에러를 해결할 수 있고 또 다른 방법으론 아래와 같은 argument를 build.gradle(app)에 추가해주라고 합니다.

 defaultConfig {
        ....

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation":
                                     "$projectDir/schemas".toString()]
            }
        }
    }

 

Room미사용시 대응

위 코드를 추가해도 에러가 해결 안되는 경우는 Room을 사용하고 있지 않기 때문입니다. build.gradle(app)에 아래코드를 추가해주세요.

 kapt {
        javacOptions {
            // These options are normally set automatically via the Hilt Gradle plugin, but we
            // set them manually to workaround a bug in the Kotlin 1.5.20
            option("-Adagger.fastInit=ENABLED")
            option("-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true")
        }
    }

 

제가 리펙토링하고 있는 개인 앱은 17년도에 개발했기 때문에..대부분 자바로 되어 있고 아직 sqlite를 사용하고 있습니다. 회사 앱은 리펙토링을 default로 깔고 가는데 개인앱은 돌아가기만 하면 된다! 가 자꾸 되네요 ..  

클래스가 몇개 안되지만 100프로 코틀린으로 바꾸는 날을 위하여 !

 

 

반응형