当前位置: 首页 > 知识库问答 >
问题:

Dagger2体系结构失败。应用程序不实现Dagger.Android.HasAndroidInjector

郗阳德
2023-03-14

我正在学习Dagger2,并试图构建一个非常愚蠢的示例(Mainactivity必须实例化一个汽车类)。

    null
class MainActivity : DaggerAppCompatActivity() {

    @Inject
    lateinit var car: Car

    public var brand: String = "Peugeot"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        DaggerAppComponent.builder().application(application).buildAppComponent()
        car.name = brand


        Log.e("CarText", "onCreate: ${car.name}")
    }
@Component(
    modules = arrayOf(AppModule::class)
)
public interface AppComponent : AndroidInjector<AppComponent>{

    @Component.Builder
    interface Builder {

        @BindsInstance
        fun application(application: Application): Builder

        fun buildAppComponent(): AppComponent
    }
@Module
class AppModule {

    companion object{
        @Provides
        fun createCar(): Car {
            return Car("")
        }
    }


}

完成我的汽车课

data class Car(var name: String)

共有1个答案

湛财
2023-03-14

解决办法已经找到了。

  1. 我想念AppComponent中的AndroidSupportInjectionModule::类
  2. 我错过了在我的应用程序模块中创建一个带有@contributesandroidinjector注释的抽象方法
 类似资料:
  • 失败:生成失败,出现异常。 出了什么问题:任务'执行失败:app: check DebugAarMetadata'。 发生多个任务操作失败:执行com时发生故障。Android建筑格雷德尔。内部的任务。CheckAarMetadataWorkAction > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整

  • 这是一个有点开放性的问题,但是,制作一个好的可扩展电子应用程序的好方法是什么?VSCode、Atom和许多其他软件都支持扩展,但它们的代码库太大,我无法理解到底发生了什么。我对Jupyterlab感到非常惊讶,据他们说,它包含一个小小的核心,而其他一切都只是它上面的扩展。所以我想知道如何构建这些应用程序。 我的具体问题是: 是否有创建可扩展架构的最佳实践 电子部分是如何“识别”延伸的?怎么装的?什

  • 过去,我在玩Node。js只在我的本地机器上,所以我只有使用单进程Node的经验。js应用程序。现在,我想创建一个可以在web上发布的web应用程序。 这个web应用程序有点像多人游戏——使用Socket。IO用于客户端-服务器通信,Express用于处理HTTP请求,grunt用于任务管理,等等——我希望使用其他NPM包来处理各种任务。 我想将此应用程序的架构设计为 < li >实现水平可伸缩性

  • 问题内容: 让我们分享基于Java的Web应用程序体系结构! Web应用程序有许多不同的体系结构,这些体系结构将使用Java来实现。这个问题的答案可以用作各种Web应用程序设计的库,各有其优缺点。虽然我意识到答案将是主观的,但让我们尽可能做到客观,并激发我们列出的利弊。 使用您喜欢的详细程度描述体系结构。为了使您的答案具有任何价值,您至少必须描述所描述的体系结构中使用的主要技术和思想。最后但并非最

  • 我正在尝试开发一个登录应用程序,它从用户那里获取用户名和密码,并与数据库核对,如果它是真的,那么它就会改变到另一个视图,如果不是,它就会显示警报。我试着做了一个基本版本,密码存储在文本文件中,它只在controller类中检查。但我想实现MVC架构。我无法为此完成model类和controller类。我怎么能这么做? 查看类: 主类:

  • Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是自由软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据的能力。Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。 Cep