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

возможно связано: stackoverflow.com/a/52489036/549372

Martin Zeitler 27.09.2018 23:04

Большое спасибо, это не решило мою проблему, но я снова попробовал привязку старых данных, и это привело к меньшему количеству ошибок, и я смог найти настоящего виновника из-за этого

prom85 27.09.2018 23:27
6
2
5 257
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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/eca8ae6c2e6a619913ab05d503a4368f

как точно использовать afterEvaluate?

LunaVulpo 25.10.2018 00:16

Вам нужно поместить его в свой PROJECTS build.gradle, я создал базовый пример здесь: gist.github.com/MFlisar/eca8ae6c2e6a619913ab05d503a4368f

prom85 25.10.2018 08:35

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

Другие вопросы по теме