не может получить доступ к DataBindingComponent dagger 2 - PullRequest
0 голосов
/ 27 января 2020

Я хочу внедрить привязку данных к активности с помощью Dagger 2. У меня проблема с ним. Я не понимаю, что не так.

ОШИБКА

cannot access DataBindingComponent class file for androidx.databinding.DataBindingComponent not found

И мой код:

MainActivity.kt

class MainActivity : AppCompatActivity() {
    @Inject lateinit var bindingUtil: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        val stepperContainer = (applicationContext as StepperApplication).stepperContainer
        stepperContainer.inject(this)
        super.onCreate(savedInstanceState)
    }
}

StepperApplication.kt

class StepperApplication : Application() {
    val stepperContainer by lazy {
        DaggerStepperComponent.builder().context(ContextModule(applicationContext)).build()
    }

    override fun onCreate() {
        super.onCreate()
    }
}

StepperComponent.kt

@Singleton
@Component (modules = [ContextModule::class])
interface StepperComponent {
    fun inject(activity: MainActivity)
}

ContextModule. kt

@Module
class ContextModule (var context: Context) {

    @Singleton
    @Provides
    fun context() : Context {
        return context
    }
}

ActivityMainModule.kt

@Module (subcomponents = [ActivityMainComponent::class])
class ActivityMainModule (var activity: MainActivity) {
    @Provides
    fun activityMainBinding(activity: MainActivity) : ActivityMainBinding {
        return DataBindingUtil.setContentView(activity, R.layout.activity_main)
    }
}

ActivityMainComponent.kt

@Subcomponent
interface ActivityMainComponent {

    @Subcomponent.Builder
    interface Builder {
        fun activityMain(activity: MainActivity) : Builder
        fun build() : ActivityMainComponent
    }
}

Gradle

implementation 'com.google.dagger:dagger:2.25.2'
kapt 'com.google.dagger:dagger-compiler:2.25.2'

activity_main. xml

<?xml version="1.0" encoding="utf-8"?>
<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">
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hello World!" />
        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

В чем проблема и как ее решить ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...