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()
}
}