android - Hilt 构建失败
问题描述
我正在尝试从 Dagger 迁移到 Hilt,但出现此构建错误
BaseApplication,预计将使用@DefineComponent 进行注释。找到:@kotlin.Metadata(mv={1, 4, 1}, bv={1, 0, 3}, k=1, d1={"\u0000\u0012\n\u0002\u0018\u0002\n\ u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\b\u0007\u0018\u00002\u00020\u0001B\u0005\u00a2\u0006\u0002\u001 b\u0010\u0003\u001a\u00020\u0004H\u0016\u00a8\u0006\u0005"}, d2={"Lcom/example/unioncoop/BaseApplication;", "Landroid/app/Application;", "()V" , "onCreate", "", "app_debug"}),@dagger.hilt.android.HiltAndroidApp
我不知道错误在哪里,这是我的代码 My Application Class
@HiltAndroidApp
class BaseApplication : Application() {
override fun onCreate() {
super.onCreate()
}
}
活动课
@AndroidEntryPoint
class MainActivity : AppCompatActivity () {}
我的模块
@Module
@InstallIn(BaseApplication.class)
public class NetworkModule {
private static final String BASE_URL = "";
@Provides
OkHttpClient getOkHttpClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(message -> Log.w("Logger", "log: " + message));
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
return new OkHttpClient().newBuilder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.MINUTES)
.writeTimeout(5, TimeUnit.MINUTES)
.addInterceptor(interceptor)
.build();
}
@Provides
public Gson getGson() {
return new GsonBuilder()
.registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory())
.serializeNulls()
.setLenient()
.create();
}
@Provides
Retrofit getRetrofit(OkHttpClient client, Gson gson) {
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(client)
.build();
}
}
解决方案
我刚刚在注释中将 BaseApplication 替换为 ApplicationComponent ,InstallIn
如下所示,一切正常。
@InstallIn(ApplicationComponent.class)