Hilt에서는 Android 클래스 용이 아닌 일반 Class에서는 EntryPoint Annotation이 지원하지 않는다.


Interface만을 지원하기 때문에 아래와 같이 구현해야 한다.

@EntryPoint
    @InstallIn(SingletonComponent::class)
    interface TestInterface {
        fun adRequest(): AdRequest
    }


val hiltEntryPoint =
            EntryPointAccessors.fromApplication(context, TestInterface::class.java)



val adRequest = hiltEntryPoint.adRequest()
adView.loadAd(adRequest)



Singleton Class Module에 선언된 함수값을 사용할 수 있게 된다.

@Module
@InstallIn(SingletonComponent::class)
object AppModule {
    @Provides
    fun adRequest(): AdRequest {
        val testDeviceIds: List<String> = listOf(
            "ABC"
        )
        val configuration = RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build()
        MobileAds.setRequestConfiguration(configuration)

        return AdRequest.Builder().build()
    }
}

+ Recent posts