アプリをコンパイルすると、生成されたすべてのWhateverFragmentOrActivityBindingクラスで次のエラーが発生します。
error: cannot find symbol
protected WhateverFragmentOrActivityBinding(DataBindingComponent _bindingComponent, View _root,
^
symbol: class DataBindingComponent
location: class WhateverFragmentOrActivityBinding
ザ・
DataBindingComponent
クラスは生成されていないようです。
DataBindingComponent
のドキュメントを見る私たちは見る:
If using Dagger 2, the developer should extend this interface and annotate the extended interface as a Component.
私は実際にDagger 2を使用しているので、これは関連性があると思われます。私はこれを自分でやろうとしましたが、何の役にも立ちませんでしたが、インターネット上で実装されていませんでした。これは私が試したものです:
@Component(dependencies = [AppComponent::class], modules = [(AppModule::class), (AndroidInjectionModule::class), (ActivityBuilderModule::class)])
interface BindingComponent : DataBindingComponent
ただし、既に発生したシンボルエラーが見つからないため、DaggerBindingComponentクラスは生成されません。これは鶏と卵の問題のように思えるので、これが私の問題の解決策であると確信することはできません。
DataBindingComponentは、BindingAdaptersの処理を担当しているようです。 ImageView srcプロパティをバインドするためのカスタムバインディングアダプタがいくつかありますが、これらのアダプタをコメントアウトしても役に立たないため、それらが関連しているかどうかはわかりません。
Daggerをアプリから完全に削除してみましたが、問題は解決しませんでした。他に何を試すべきかわからない
u_u
同じエラーメッセージが表示されていました。
その後、私はそのスタジオを見つけましたエラーが表示されていました DataBindingが使用/ビルドされている場合、ビルド出力にはデフォルトで100行を超えるエラーが表示されませんでした。
https://github.com/google/dagger/issues/306
これをbuild.gradleに追加しました:
gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xmaxerrs" << "500" // or whatever number you want } }
次に、実際のエラーを見つけました:
https://github.com/google/dagger/issues/1245
https://issuetracker.google.com/issues/115738511
私にとっての解決策は格下げ ダガー2.19からダガー2.16。
- Observable Roomエンティティ(kotlin)
- RecyclerViewを使用すると、最初/最後のアイテムを中央にスクロールできます
- removeObserverが機能せず、オブザーバーが実行され続けます
- 配列リストの親値に基づいてコメントと返信を並べ替える(ネストされたコメント)
- リストから値を3000〜3500でフィルタリングします
- EditTextから同じhtml文字列を取得する方法
- androidxdatabinding:viewbinding:410が見つかりませんでした
- KotlinのList から正しい値を取得する方法
- Room DAOを適切にユニットテストする方法は?
- アプリの別の部分でonCreatePreferences()によって作成された設定にアクセスする方法は?
私は数日前に同じ問題を抱えていましたが、製品フレーバーを使用していて、そのうちの1つ(現在取り組んでいたもの)が必要なクラスにアクセスできませんでした、これによりすべてのバインディングクラスが失敗しましたすべてのアクティビティまたはフラグメントバインディングクラスで複数のエラーを取得します。
また、Dagger2を使用していましたが、モジュールの1つがクラス(CustomBroadcastReceiver)にアクセスできませんでした
ビルドプロセス後にこのエラーは表示されませんでした。BroadcastReceiverModuleは「メイン」リソースの一部でしたが、CustomBroadcastReceiverが存在しない作業中のフレーバーには必要ありませんでした。
BroadcastReceiverModuleを「メイン」リソースから削除し、実際に必要なフレーバーにのみ配置した後、それはまだ必要ではありませんが、それでも多くのエラーを生成しました