DataBindingComponent имеет значение NULL, bind (view) не должен иметь значение NULL с DataBinding в FragmentStateManager.createView (FragmentStateManager. java: 332) - PullRequest
0 голосов
/ 08 мая 2020
java.lang.IllegalStateException: ProfileFragmentBinding.bind(view) must not be null
    at com.xx.profile.ProfileFragment.onViewCreated(ProfileFragment.kt:39)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:332)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
    at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:198)
    at android.app.ActivityThread.main(ActivityThread.java:7055)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)

С последних нескольких дней я получаю очень странное исключение, и cra sh происходит в основном из-за DataBindingComponent, так как он возвращает null с dataBinding

Он хорошо работает с ViewBinding но с привязкой данных происходит сбой

Примечание (случайно): в моем проекте 21 модуль, включая этот, я получил это исключение во время выполнения для каждого модуля привязки данных, и если я удалю любой другой модуль и доведу его до 20, код отлично подходит как для привязки данных, так и для привязки просмотра.

Но мне это нужно как модуль, было бы здорово, если бы вы, ребята, могли мне помочь. Заранее спасибо.

Я использую компонент Navigation-Architecture с BottomNavigationView.

Мой код следующий,

package com.xx.profile

import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.observe
import com.xx.core.dagger.ViewModelFactory
import com.xx.core.dagger.coreComponent
import com.xx.core.util.LogoutInterface
import com.xx.core.util.context.launchUrl
import com.xx.core.util.event.EventObserver
import com.xx.profile.databinding.ProfileFragmentBinding
import com.xx.profile.di.DaggerProfileComponent
import javax.inject.Inject

class ProfileFragment(private val logoutInterface: LogoutInterface) : Fragment(R.layout.profile_fragment) {

private lateinit var binding: ProfileFragmentBinding

@Inject
lateinit var viewModelFactory: ViewModelFactory

private val viewModel: ProfileViewModal by lazy {
    ViewModelProvider(viewModelStore, viewModelFactory).get(ProfileViewModal::class.java)
}

override fun onAttach(context: Context) {
    super.onAttach(context)
    DaggerProfileComponent.factory().create(context.coreComponent()).inject(this)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    binding = ProfileFragmentBinding.bind(view)

}

}

My xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">


 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    tools:context=".ProfileFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:orientation="vertical"
        android:padding="16dp"
        tools:ignore="ExtraText">


    </LinearLayout>
 </ScrollView>
</layout>
...