Ich habe ein Android-Projekt heruntergeladen, erhalte jedoch diese Fehlermeldung:
Error:(42, 42) error: cannot find symbol class DataBindingComponent
Beispielimport:
import Android.databinding.DataBindingComponent; // no code-time error
import Android.databinding.DataBindingUtil;
import Android.databinding.ViewDataBinding;
Verwendungsbeispiel:
public FragmentFantasyPointsSingleBinding(DataBindingComponent bindingComponent, View root) {
super(bindingComponent, root, 0);
Object[] bindings = ViewDataBinding.mapBindings(bindingComponent, root, 4, sIncludes, sViewsWithIds);
this.animationView = (LottieAnimationView) bindings[3];
this.mboundView0 = (FrameLayout) bindings[0];
this.mboundView0.setTag(null);
this.progressView = (LinearLayout) bindings[2];
this.recyclerView = (RecyclerView) bindings[1];
setRootTag(root);
invalidateAll();
}
Es gibt keinen Fehler bei der Code-Zeit, aber zur Kompilierzeit bekomme ich den Fehler, den ich erwähnt habe.
Wenn ich versuche, die Definition in Android Studio festzulegen, kann ich das nicht.
App-Ebene build.gradle:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 26
defaultConfig {
applicationId "com.esports.flank"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:26.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
compile 'com.Android.support:support-annotations:26.1.0'
compile "com.Android.support:appcompat-v7:26.1.0"
compile "com.Android.support:recyclerview-v7:26.1.0"
implementation 'com.Android.support:cardview-v7:26.1.0'
implementation 'com.github.bumptech.glide:glide:4.7.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
implementation 'de.hdodenhof:circleimageview:2.2.0'
compile('com.Twitter.sdk.Android:Twitter:[email protected]') {
transitive = true
}
compile 'com.Microsoft.Azure:azure-mobile-Android:[email protected]'
implementation 'com.airbnb.Android:lottie:2.5.5'
compile 'com.github.ybq:Android-SpinKit:1.1.0'
compile 'uk.co.chrisjenx:calligraphy:2.3.0'
compile 'com.romandanylyk:pageindicatorview:[email protected]'
api 'com.google.guava:guava:26.0-Android'
compile 'com.Android.support:design:26.1.0'
implementation 'com.wajahatkarim3.EasyFlipView:EasyFlipView:2.1.0'
}
Ich habe versucht, das Projekt zu reinigen und wieder aufzubauen, noch kein Glück.
Danke für die Hilfe.
Diese Antwort hat mir in einem ähnlichen Fall geholfen: https://stackoverflow.com/a/52550118/8655667
Android.enableExperimentalFeatureDatabinding=true
und Android.databinding.enableV2=false
zu gradle.properties
hinzuNach dem Neuaufbau sollte der tatsächliche Grund für den Kompilierungsfehler angezeigt werden.
In meinem Fall bestand die Ursache des Problems darin, dass ich ein ViewModel aus seinem ursprünglichen Paket "Verzeichnis" in ein neues verschoben habe, das ich erstellt habe, um mein Projekt zu bereinigen. Ich hatte auch ein paar andere Fehler.
Ich hatte wiederholt auf "Projekt erstellen" geklickt, um Importprobleme zu lokalisieren, bis alle aufgeräumt wurden. Dies konnte jedoch nicht die verbleibenden Fehler in den relevanten XML-Dateien finden, die ich mit Windows GREP gefunden hatte.
Ich öffnete die zugehörigen XML-Dateien und stellte fest, dass die Variable immer noch auf den ursprünglichen Pfad verwies (beachten Sie, dass "<" und ">" nicht angezeigt werden, da ich nicht weiß, wie Sie sie umgehen können):
variable name = "viewModel" type = "original.project.path.name"
Ich habe es geändert in:
variable name = "viewModel" type = "new.project.path.name"
Dies hat meine Version dieses Problems behoben.