web-dev-qa-db-ja.com

AndroidXの移行後にシンボルDataBindingComponentが見つかりません

プロジェクト全体をAndroid= xに移行した後、コンパイルできなくなりました。

次のエラーが100件表示されます。

e: M:\tmp\EverywhereLauncher\app\generated\data_binding_base_class_source_out\devWithoutTestWithAccessibilityDebug\dataBindingGenBaseClassesDevWithoutTestWithAccessibilityDebug\out\com\my\app\databinding\ActivityMainBinding.Java:52: error: cannot find symbol
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
                                                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding

どこへ進むかわかりません。

今、二つの問題があります。

  • 100個のエラーしか表示されない
  • すべてのエラーは同じであり、おそらく実際のエラーを隠している

私が試したこと:

  • 私のプロジェクトではbuild.gradle印刷されるエラーの数を10000に増やすには:

    gradle.projectsEvaluated {
            tasks.withType(JavaCompile) {
                options.compilerArgs << "-Xmaxerrs" << "10000"
            }
        }
    

    これは常に機能しましたが、この場合、表示されるエラーは増加しません

次に私ができることはありますか?

追加

  • 私は以下を使用します

    Android.enableJetifier=true
    Android.useAndroidX=true
    
  • Android studio 3.2、kotlin付き1.2.61および3.3.0-alpha01 Gradleビルドツール

  • 3.3.0-alpha01gradleビルドツール。evernoteも使用しているためcom.evernote:Android-stateそれ以外の場合-問題はここで説明されています: https://github.com/evernote/Android-state/issues/56
6
prom85

解決策-記録されたエラーを増やします

以前は、brojectのbuild.gradleファイル:

gradle.projectsEvaluated {
    tasks.withType(JavaCompile.class) {
        options.compilerArgs << "-Xmaxerrs" << "10000"
    }
}

Kotlinでは、次のことが役立ちます。

afterEvaluate {
    if (project.plugins.hasPlugin("kotlin-kapt")) {
        kapt {
            javacOptions {
                option("-Xmaxerrs", 10000)
            }
        }
    }
}

実際の問題

私の場合、クラスをJavaから次のようないくつかのフィールドを持つkotlinに変換しました:

@Arg
Integer someValue;

コンバーターは以下を作成しました:

@Arg
internal var someValue: Int? = null

問題:

internalはアノテーションでは機能しないため、失敗しましたが、ログにはデータバインディングエラーのみが表示されました...

プロジェクト例build.gradle

https://Gist.github.com/MFlisar/eca8ae6c2e6a619913ab05d503a4368f

5
prom85

私はまた、androidxに更新した後にこのバグを受け取り、いくつかのスタックオーバーフローの投稿で提案されたすべてを試し、最終的にGradleプラグイン3.3.0-beta03に更新しました

1
enyciaa