Не удается найти символ DataBindingComponent после миграции AndroidX

После переноса всего проекта на 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-alpha01 инструменты сборки gradle, потому что я также использую evernote com.evernote:android-state, который не работает иначе - проблема объясняется здесь: https://github.com/evernote/android-state/issues/56

person prom85    schedule 27.09.2018    source источник
comment
возможно, связано: stackoverflow.com/a/52489036/549372   -  person Martin Zeitler    schedule 28.09.2018
comment
Большое спасибо, это не решило мою проблему, но я снова попробовал привязку старых данных, и это привело к меньшему количеству ошибок, и я смог найти настоящего виновника из-за этого   -  person prom85    schedule 28.09.2018


Ответы (2)


РЕШЕНИЕ - увеличить регистрируемые ошибки

Раньше в 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/eca8ae6c2e6a619913ab05fd503a4368

person prom85    schedule 27.09.2018

Я также получал эту ошибку после обновления до androidx, пробовал все, что предлагалось в нескольких сообщениях о переполнении стека, наконец, обновление до плагина gradle 3.3.0-beta03 сработало

person enyciaa    schedule 04.12.2018