プロジェクト全体を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
どこへ進むかわかりません。
今、二つの問題があります。
私が試したこと:
私のプロジェクトでは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-alpha01
gradleビルドツール。evernoteも使用しているためcom.evernote:Android-state
それ以外の場合-問題はここで説明されています: https://github.com/evernote/Android-state/issues/56解決策-記録されたエラーを増やします
以前は、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
私はまた、androidxに更新した後にこのバグを受け取り、いくつかのスタックオーバーフローの投稿で提案されたすべてを試し、最終的にGradleプラグイン3.3.0-beta03に更新しました