web-dev-qa-db-fra.com

Impossible de trouver le symbole DataBindingComponent après la migration d'AndroidX

Après avoir migré tout mon projet vers Android x, je ne parviens plus à le compiler.

Je reçois 100 des erreurs suivantes:

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

Je ne sais pas où continuer.

J'ai deux problèmes maintenant.

  • Je ne vois que 100 erreurs
  • toutes les erreurs sont les mêmes et cachent probablement la véritable erreur

Ce que j'ai essayé:

  • J'ai dans mes projets build.gradle pour augmenter le nombre d'erreurs imprimées à 10 000:

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

    Cela a toujours fonctionné mais dans ce cas cela n’augmente pas les erreurs imprimées

Des idées que je pourrais faire ensuite?

Additionnel

  • J'utilise le suivant

    Android.enableJetifier=true
    Android.useAndroidX=true
    
  • J'utilise Android studio 3.2, avec kotlin 1.2.61 et 3.3.0-alpha01 gradle outils de construction

  • J'utilise les outils de construction 3.3.0-alpha01 gradle car j'utilise également evernote com.evernote:Android-state, ce qui n'est pas le cas autrement - le problème est expliqué ici: https://github.com/evernote/Android-state/issues/56
2
prom85

SOLUTION - augmente les erreurs enregistrées

Dans le passé, suivre était suffisant dans le fichier build.gradle du broject: 

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

Avec kotlin, ce qui suit aidera:

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

REAL ISSUE

Dans mon cas, j'ai converti une classe de Java en kotlin avec des champs tels que:

@Arg
Integer someValue;

Le convertisseur créé suivant:

@Arg
internal var someValue: Int? = null

Le problème:

internal ne fonctionne pas avec l'annotation, elle a donc échoué, mais le journal n'a montré que les erreurs de liaison des données ...

Exemple de projet build.gradle

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

5
prom85

J'obtenais aussi ce bogue après la mise à jour vers androidx, j'ai essayé tout ce qui était suggéré dans quelques messages de débordement de pile, et enfin, j'ai mis à jour gradle plugin 3.3.0-beta03

1
enyciaa