Ошибка при использовании Dagger2, Room и Databinding

У меня проблема с этой ошибкой "error: cannot find symbol class DataBindingComponent" от app/build/generated/source/dataBinding/baseClasses/debug. Я перепробовал все варианты, предложенные людьми в Интернете, но совершенно не помогло. эти варианты включали: 1. очистить / перестроить проект 2. аннулировать кеши / перезапустить

1) это мой корень build.gradle

buildscript {
        repositories {
            google()
            jcenter()
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.3'
            classpath 'com.google.gms:google-services:4.0.1'
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url "https://jitpack.io" }
            maven {
                url "https://maven.google.com"
            }
        }
        gradle.projectsEvaluated {
            tasks.withType(JavaCompile) {
                options.compilerArgs << "-Xmaxerrs" << "500"
            }
        }
    }

    task clean(type: Delete) {
        delete rootProject.buildDir
    }

    ext {

        // Sdk and tools
        minSdkVersion = 17
        devMinSdkVersion = 21;
        devPreLollipopSdkVersion = 19;
        targetSdkVersion = 27
        compileSdkVersion = 27
        buildToolsVersion = '27.0.3'

        // App dependency
        supportLibraryVersion = '27.1.1'
        retrofit = "2.3.0"
        okHttp = "3.5.0"
        butterknife= "8.8.1"
        glide = "4.7.1"
        glideCompiler = "4.7.1"
        rxJava = '2.1.8'
        rxAndroid = '2.0.1'
        dagger2 = "2.16"

        // version
        versionCode = 1
        versionName = "1.0"
    }

2) это мой модуль build.gradle

`apply plugin: 'com.android.application'

android {
    dataBinding {
        enabled = true
    }
    compileSdkVersion rootProject.ext.targetSdkVersion
    dexOptions {
        maxProcessCount 2
        javaMaxHeapSize "2g"
    }
    defaultConfig {
        applicationId "com.movecrop.shipper"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "movecrop.shipper"

    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
    implementation "com.android.support:support-v4:$rootProject.supportLibraryVersion"
    implementation "com.android.support:customtabs:$rootProject.supportLibraryVersion"
    implementation "com.android.support:design:$rootProject.supportLibraryVersion"
    implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:multidex:1.0.3'
    // glide
    implementation "com.github.bumptech.glide:glide:$rootProject.glide"
    annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glideCompiler"
    implementation 'jp.wasabeef:glide-transformations:2.0.2'
    // retrofit
    implementation "com.squareup.retrofit2:retrofit:$rootProject.retrofit"
    implementation "com.squareup.retrofit2:retrofit-mock:$rootProject.retrofit"
    implementation "com.squareup.retrofit2:converter-gson:$rootProject.retrofit"
    implementation "com.squareup.retrofit2:adapter-rxjava2:$rootProject.retrofit"
    // okhttp3
    implementation "com.squareup.okhttp3:okhttp:$rootProject.okHttp"
    implementation "com.squareup.okhttp3:logging-interceptor:$rootProject.okHttp"
    implementation 'com.squareup.okio:okio:1.13.0'
    implementation 'de.hdodenhof:circleimageview:2.1.0'
    implementation 'com.orhanobut:hawk:2.0.1'
    implementation 'com.jakewharton.byteunits:byteunits:0.9.1'
    implementation 'com.github.tajchert:nammu:1.2.0'
    // RxJava
    implementation "io.reactivex.rxjava2:rxjava:$rootProject.ext.rxJava"
    implementation "io.reactivex.rxjava2:rxandroid:$rootProject.ext.rxAndroid"
    // Bottom navigation
    implementation 'it.sephiroth.android.library.bottomnavigation:bottom-navigation:2.0.1-rc1'
    // curl
    implementation 'com.github.mrmike:Ok2Curl:master-SNAPSHOT'
    // Firebase
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-messaging:17.0.0'
    implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
    // Dagger2
    implementation "com.google.dagger:dagger-android:$rootProject.dagger2"
    // Dagger2 if you use the support libraries
    implementation "com.google.dagger:dagger-android-support:$rootProject.dagger2"
    annotationProcessor "com.google.dagger:dagger-android-processor:$rootProject.dagger2"
    annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2"

    def lifecycle_version = "1.1.1"
    implementation "android.arch.lifecycle:livedata:$lifecycle_version"
    def room_version = "1.1.1"
    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version"

    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'
}
apply plugin: 'com.google.gms.google-services'

`

Надеюсь, вы, ребята, дадите мне какое-нибудь предложение, спасибо

обновлено: Это одно из моих действий (и его макет xml), которое показывает ошибку:

package com.movecrop.shipper.ui.home;

import android.content.Context;
import android.content.Intent;
import android.databinding.DataBindingComponent;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class HomeActivity
        extends AppCompatActivity
        implements HomeViewModel.HomeListener,
                   SwitchWorkingStatusReceiver.OnSwitchWorkingStatusListener {

    private HomeViewModel mHomeViewModel;
    ActivityHomeBinding mBinding;
    LayoutDrawerHeaderBinding mHeaderBinding;
    private ActionBarDrawerToggle mActionBarDrawerToggle;
    private SwitchWorkingStatusReceiver mSwitchWorkingStateReceiver = new SwitchWorkingStatusReceiver();
    private static final String TAG = "HomeActivity";

    public static Intent newIntent(Context context) {
        Intent i = new Intent(context, HomeActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                           | Intent.FLAG_ACTIVITY_CLEAR_TASK
                           | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        return i;
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Injector.getInstance().component().inject(this);
        mBinding = DataBindingUtil.setContentView(this, R.layout.activity_home);
        mBinding.setHomeActivity(this);
        mHomeViewModel = new HomeViewModel();
        mHomeViewModel.initialize(this);
        LocalBroadcastManager.getInstance(this).registerReceiver(
                mSwitchWorkingStateReceiver,
                SwitchWorkingStatusReceiver.getIntenFilter()
        );
        initDrawer();
        mHomeViewModel.loadUser();
        navigate(R.id.menu_dashboard);
    }
}
<layout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    xmlns:tools = "http://schemas.android.com/tools"
    tools:context = "com.movecrop.shipper.ui.home.HomeActivity">

    <data>

        <variable
            name = "homeActivity"
            type = "com.movecrop.shipper.ui.home.HomeActivity" />
    </data>

    <android.support.v4.widget.DrawerLayout
        android:id = "@+id/drawer"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:fitsSystemWindows = "true">

        <LinearLayout
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            android:orientation = "vertical">

            <FrameLayout
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content">

                <android.support.v7.widget.Toolbar
                    android:id = "@+id/toolbar"
                    android:layout_width = "match_parent"
                    android:layout_height = "?android:actionBarSize"
                    app:title = "@string/label_dashboard_title" />

                <ImageView
                    android:id = "@+id/imgNotification"
                    android:layout_width = "48dp"
                    android:layout_height = "48dp"
                    android:layout_gravity = "right|center_vertical"
                    android:cropToPadding = "true"
                    android:padding = "12dp"
                    android:visibility = "invisible" />

            </FrameLayout>

            <FrameLayout
                android:id = "@+id/frameLayout"
                android:layout_width = "match_parent"
                android:layout_height = "match_parent" />

        </LinearLayout>

        <android.support.design.widget.NavigationView
            android:id = "@+id/drawerNavigationView"
            android:layout_width = "wrap_content"
            android:layout_height = "match_parent"
            android:layout_gravity = "start"
            android:background = "@android:color/white"
            android:theme = "@style/ThemeOverlay.AppCompat.Light"
            app:headerLayout = "@layout/layout_drawer_header"
            app:itemBackground = "@drawable/bg_menu_item_selector"
            app:itemIconTint = "@color/color_menu_item_selector"
            app:itemTextColor = "@color/colorDrawerIconTint"
            app:menu = "@menu/drawer">


            <LinearLayout
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_gravity = "bottom"
                android:orientation = "vertical">

                <Button
                    android:id = "@+id/btnToggle"
                    android:layout_width = "wrap_content"
                    android:layout_height = "@dimen/button_height"
                    android:layout_gravity = "center_horizontal"
                    android:layout_marginLeft = "32dp"
                    android:layout_marginRight = "32dp"
                    android:layout_marginTop = "40dp"
                    android:background = "@drawable/bg_primary_button_unselected"
                    android:maxLines = "1"
                    android:onClick = "@{homeActivity::click}"
                    android:paddingLeft = "16dp"
                    android:paddingRight = "16dp"
                    android:text = "@string/button_go_online"
                    android:textAllCaps = "true"
                    android:textColor = "@android:color/white"
                    android:textSize = "12sp" />

                <TextView
                    android:id = "@+id/btnSetting"
                    android:layout_width = "wrap_content"
                    android:layout_height = "wrap_content"
                    android:layout_gravity = "left"
                    android:layout_marginTop = "32dp"
                    android:background = "@drawable/ts_list_item"
                    android:drawableLeft = "@drawable/ic_dm_setting"
                    android:drawablePadding = "32dp"
                    android:onClick = "@{homeActivity::click}"
                    android:paddingBottom = "16dp"
                    android:paddingLeft = "16dp"
                    android:paddingRight = "16dp"
                    android:paddingTop = "16dp"
                    android:textColor = "@color/colorDrawerIconTint"
                    android:textStyle = "bold"
                    android:fitsSystemWindows = "true"
                    android:text = "@string/dm_setting" />

            </LinearLayout>

        </android.support.design.widget.NavigationView>

    </android.support.v4.widget.DrawerLayout>

</layout>

Где вывод компилятора и мои файлы build.gradle?

Deividas Strioga 29.06.2018 16:19

@DeividasStrioga извините, я обновил свой пост. Спасибо

Ho Thai Truong An 29.06.2018 16:35

Какой код в строке, на которую указывает ошибка?

Deividas Strioga 29.06.2018 16:38

эти ошибки указывают на мой класс привязки активности, созданный в app / build / generated / source / dataBinding / baseClasses / debug

Ho Thai Truong An 29.06.2018 16:46

Пожалуйста, опубликуйте код этого действия и его макет в xml.

Deividas Strioga 29.06.2018 16:46

@DeividasStrioga, я обновил свой пост. Это одно из моих действий, которое показывает ошибку, пожалуйста, посмотрите, спасибо.

Ho Thai Truong An 29.06.2018 17:00

Пожалуйста, также опубликуйте полный журнал ошибок. Пока повода для ошибки не увидел. Кроме того, что делает LayoutDrawerHeaderBinding mHeaderBinding?

Deividas Strioga 29.06.2018 17:06

Попробуйте добавить эту зависимость в уровень вашего модуля gradle: annotationProcessor "com.android.databinding: compiler: 3.1.3

Deividas Strioga 29.06.2018 17:12

@DeividasStrioga, я попробую и отвечу вам как можно скорее, спасибо, что не торопились: D

Ho Thai Truong An 29.06.2018 17:47

@DeividasStrioga большое спасибо, я обнаружил свою ошибку, она исходит из моего интерфейса dao для комнаты, а не из dagger2, ни привязки данных, спасибо, что уделили время и хорошего дня

Ho Thai Truong An 29.06.2018 18:22
2
10
433
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, ошибка исходит из моего интерфейса dao для базы данных комнаты, а не из dagger2 или библиотеки привязки данных. надеюсь, что это поможет любому, у кого такая же проблема.

В чем была ошибка в вашем классе дао? Это не так уж и полезно.

AdamMc331 29.10.2018 21:01

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