android gradle-8.2 中 dagger2

android gradle-8.2 中 dagger2 使用无法自动生成dagger + component 解决方案

1、在 Android Gradle 8.2 中,Dagger 2 的自动生成功能已被移除。这意味着您需要手动生成 Dagger 组件。

要手动生成 Dagger 组件,您需要执行以下步骤:

在 build.gradle 文件中,添加以下代码:
dependencies {
implementation 'com.google.dagger:dagger:2.40.5'
annotationProcessor 'com.google.dagger:dagger-compiler:2.40.5'
}
这段代码会添加 Dagger 2 库及其编译器到您的应用程序的依赖项。

2、创建一个 DaggerAppComponent 类,并将其标记为 @Singleton。
@Singleton
@Component(modules = {AppModule.class})
interface DaggerAppComponent {

// 提供 App 类
App app();

// 提供其他依赖项
// ...

}
这段代码会将 DaggerAppComponent 标记为单例,并指定 AppModule 作为其模块。

3、创建一个 AppModule 类,并在其中定义依赖项。
@Module
class AppModule {

@Provides
@Singleton
static App provideApp() {
    return MyApplication.getInstance();
}

// 定义其他依赖项
// ...

}
这段代码会定义 App 类的提供方法。

4、在 Application 类的 onCreate() 方法中,使用 DaggerAppComponent.builder() 方法来构建 DaggerAppComponent 对象。
@Override
public void onCreate() {
super.onCreate();

// 构建 DaggerAppComponent 对象
DaggerAppComponent daggerAppComponent = DaggerAppComponent.builder()
        .appModule(new AppModule(this))
        .build();

// 注入依赖项
daggerAppComponent.inject(this);

}
这段代码会构建 DaggerAppComponent 对象,并将其注入到 Application 类中。

5、在需要依赖项的地方,使用 DaggerAppComponent.inject() 方法来注入依赖项。
class MyActivity extends AppCompatActivity {

@Inject
App app;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 注入依赖项
    DaggerAppComponent.inject(this);
}

}
这段代码会注入 App 依赖项到 MyActivity 类中。

6、通过以上步骤,您就可以在 Android Gradle 8.2 中使用 Dagger 2 来管理依赖项。

以下是一些额外的注意事项:

在 Android Gradle 8.2 中,Dagger 2 的编译器已被更新为 2.40.5 版本。因此,您需要确保您的 Dagger 库和编译器版本兼容。
在 Android Gradle 8.2 中,Dagger 2 的自动生成功能已被移除。因此,您需要手动生成 Dagger 组件。
在 Android Gradle 8.2 中,Dagger 2 的注解处理器已被更新为 2.40.5 版本。因此,您需要确保您的 IDE 兼容该版本。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章首发于个人博客 参考资料:Dagger2 与 AndroidInjector告别 Dagger2 模板代码:D...
    mundane阅读 4,313评论 1 5
  • 什么的依赖注入 在软件工程中,依赖注入是实现控制反转的方式之一。百度百科中对于控制反转的解释如下:控制反转(Inv...
    小甜李子阅读 1,707评论 5 3
  • 之前就听说过 Dagger2,也曾想见识见识,但都说学习成本很高,加上没太多闲时,后来也就不了了之了。最近得闲就来...
    weioule阅读 715评论 0 3
  • .MVP模式简介 我们的目标是实现MVP模式来开发我们的应用,那首先得知道什么是MVP模式。下面这篇文章讲述得通俗...
    六指禅阅读 822评论 1 1
  • 本文针对的是dagger-2.22.1的简单使用 一、Dagger2使用 1. gradle引入dagger2依赖...
    lavzchen阅读 1,506评论 0 0