web-dev-qa-db-ja.com

エラー:シンボルクラスDataBindingComponentが見つかりません

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'
}

プロジェクトのクリーニングと再構築を試みましたが、まだ運がありませんでした。

手伝ってくれてありがとう。

この回答は、同様のケースで私を助けました: https://stackoverflow.com/a/52550118/8655667

  1. 行を追加Android.enableExperimentalFeatureDatabinding=trueおよびAndroid.databinding.enableV2=falseからgradle.properties
  2. プロジェクトを同期
  3. ビルド->クリーンプロジェクト
  4. ビルド->プロジェクトの再構築

再構築後、実際のコンパイル失敗の理由が表示されます。

12
cora32

私の場合、問題の原因は、ViewModelを元のパッケージ「ディレクトリ」から、プロジェクトをクリーンアップするために作成した新しいパッケージに移動したことです。他にもいくつかエラーがありました。

[プロジェクトの作成]を繰り返しクリックして、インポートの問題をすべて解決するまで探しましたが、Windows GREPを使用して見つけた関連するXMLファイルに残っているエラーは見つかりませんでした。

関連するXMLファイルを開くと、変数がまだ元のパスを参照していることがわかりました(エスケープする方法がわからないため、「<」と「>」は表示されないことに注意してください)。

変数名= "viewModel" type = "original.project.path.name"

私はそれを次のように変更しました:

変数名= "viewModel" type = "new.project.path.name"

これにより、この問題の私のバージョンが修正されました。

0
Jeff