Jas*_*dge 9 data-binding android kotlin dagger-2
在编译我的应用程序时,我在所有生成的WhateverFragmentOrActivityBinding类上收到以下错误:
error: cannot find symbol
protected WhateverFragmentOrActivityBinding(DataBindingComponent _bindingComponent, View _root,
^
symbol: class DataBindingComponent
location: class WhateverFragmentOrActivityBinding
Run Code Online (Sandbox Code Playgroud)
该DataBindingComponent级似乎没有产生.
看一下DataBindingComponent我们看到的文档:
如果使用Dagger 2,开发人员应扩展此接口并将扩展接口注释为Component.
我确实使用Dagger 2,所以我怀疑这可能是相关的.我自己试图这样做,无济于事,无法在互联网上找到它.这就是我尝试过的:
@Component(dependencies = [AppComponent::class], modules = [(AppModule::class), (AndroidInjectionModule::class), (ActivityBuilderModule::class)])
interface BindingComponent : DataBindingComponent
Run Code Online (Sandbox Code Playgroud)
但是,从未生成DaggerBindingComponent类,因为找不到我已经拥有的符号错误.这似乎是鸡和鸡蛋的问题,所以我不相信这是我的问题的解决方案.
DataBindingComponent似乎负责处理BindingAdapters.我有一些自定义绑定适配器用于绑定ImageView src属性,但即使注释掉这些适配器也无济于事,所以我不确定它们是否相关.
我尝试完全从应用程序中删除Dagger,问题没有消失.不知道还有什么可以尝试
u_u
小智 1
几天前我遇到了同样的问题,我正在使用产品风味,其中一个(我当前正在研究的那个)无法访问所需的类,这导致所有绑定类失败,我是每个 Activity 或 Fragment 绑定类上都会出现多个错误。
我也在使用 Dagger2,并且我的一个模块无法访问类(CustomBroadcastReceiver)
@Module
abstract class BroadcasReceiverModule {
@ContributesAndroidInjector
internal abstract fun contributePhoneStateBroadcastReceiver(): CustomBroadcastReceiver
}
Run Code Online (Sandbox Code Playgroud)
在构建过程后从未显示此错误,BroadcastReceiverModule 是我的“主要”资源的一部分,但对于我正在开发的 CustomBroadcastReceiver 不存在的地方来说,它不是必需的
即使它不是必需的,它仍然生成了一堆错误,在我从“主”资源中删除 BroadcastReceiverModule 并将其仅放置在实际需要的风格上后,这些错误消失了
| 归档时间: |
|
| 查看次数: |
1922 次 |
| 最近记录: |