【问题标题】:error: cannot find symbol class DataBindingComponent错误:找不到符号类 DataBindingComponent
【发布时间】:2019-01-13 06:30:35
【问题描述】:

我下载了一个 Android 项目,但出现此错误:

Error:(42, 42) error: cannot find symbol class DataBindingComponent

样本导入:

import android.databinding.DataBindingComponent; // no code-time error
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;

示例用法:

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();
    }

代码时没有错误,但在编译时我得到了我提到的错误。

当我尝试在 Android Studio 上进行定义时,我不能。

应用级 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:3.3.0@aar') {
        transitive = true
    }
    compile 'com.microsoft.azure:azure-mobile-android:3.4.0@aar'
    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:1.0.1@aar'
    api 'com.google.guava:guava:26.0-android'
    compile 'com.android.support:design:26.1.0'
    implementation 'com.wajahatkarim3.EasyFlipView:EasyFlipView:2.1.0'
}

我尝试清理和重建项目,但还没有成功。

感谢您的帮助。

【问题讨论】:

  • @IntelliJAmiya 也尝试了这些解决方案,但动词“kapt”对我来说会引发错误。
  • 使用annotationProcessor
  • 我有这行:annotationProcessor "androidx.databinding:databinding-compiler:3.2.0-alpha16" 仍然是同样的错误@IntelliJAmiya
  • 我两个都加了:annotationProcessor "com.android.databinding:compiler:3.1.3" annotationProcessor "androidx.databinding:databinding-compiler:3.2.0-alpha16" 还是一样的错误:/

标签: java android android-studio gradle android-databinding


【解决方案1】:

这个答案在类似的情况下帮助了我:https://stackoverflow.com/a/52550118/8655667

  1. 添加行 android.enableExperimentalFeatureDatabinding=trueandroid.databinding.enableV2=falsegradle.properties
  2. 同步项目
  3. 构建 -> 清理项目
  4. 构建 -> 重建项目

重建后它应该给你实际的编译失败原因。

【讨论】:

  • 完全按照您的描述工作。结果发现来自 Room 的 @insert dao 方法没有参数(甚至没有被调用)是原因。
【解决方案2】:

就我而言,问题的原因是我将 ViewModel 从其原始包“目录”移动到了我为清理项目而创建的新目录。我还有一些其他错误。

我曾反复单击“制作项目”来定位导入问题,直到它们都被清理干净,但在我使用 Windows GREP 找到的相关 XML 文件中没有找到剩余的错误。

我打开关联的XML文件,发现变量仍然引用原始路径(注意“”没有显示,因为我不知道如何转义它们):

变量名="viewModel" type="original.project.path.name"

我改成:

变量名="viewModel" type="new.project.path.name"

这解决了我的这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2020-01-10
    • 1970-01-01
    • 2020-05-03
    • 2018-05-30
    • 2015-01-26
    相关资源
    最近更新 更多