После переноса всего проекта на 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, потому что я также использую evernote com.evernote:android-state, который не работает иначе - проблема объясняется здесь: https://github.com/evernote/android-state/issues/56Большое спасибо, это не решило мою проблему, но я снова попробовал привязку старых данных, и это привело к меньшему количеству ошибок, и я смог найти настоящего виновника из-за этого
РЕШЕНИЕ - увеличить регистрируемые ошибки
Раньше в файле брокера build.gradle было достаточно следующего:
gradle.projectsEvaluated {
tasks.withType(JavaCompile.class) {
options.compilerArgs << "-Xmaxerrs" << "10000"
}
}
С котлином поможет следующее:
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
как точно использовать afterEvaluate?
Вам нужно поместить его в свой PROJECTS build.gradle, я создал базовый пример здесь: gist.github.com/MFlisar/eca8ae6c2e6a619913ab05d503a4368f
Я также получал эту ошибку после обновления до androidx, пробовал все, что предлагалось в нескольких сообщениях о переполнении стека, наконец, обновление до плагина gradle 3.3.0-beta03 сработало
возможно связано: stackoverflow.com/a/52489036/549372