Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mypackage中的二进制XML文件行#18:layout/activity_main:膨胀类androidx.fragment.app.FragmentContainerView时出错_Java_Android_Kotlin_Android Fragments_Android Navigation - Fatal编程技术网

Java mypackage中的二进制XML文件行#18:layout/activity_main:膨胀类androidx.fragment.app.FragmentContainerView时出错

Java mypackage中的二进制XML文件行#18:layout/activity_main:膨胀类androidx.fragment.app.FragmentContainerView时出错,java,android,kotlin,android-fragments,android-navigation,Java,Android,Kotlin,Android Fragments,Android Navigation,将“Context Context”属性添加到适配器构造函数后,尝试将“getContext()”参数传递给我在片段中创建的适配器实例时,会发生此错误。 完全不知道该怎么办,我发现有些决定对我没有帮助。 我将非常感谢任何建议 错误文本: java.lang.RuntimeException: Unable to start activity ComponentInfo{space.rodionov.swedishdriller/space.rodionov.swedishdriller.Main

将“Context Context”属性添加到适配器构造函数后,尝试将“getContext()”参数传递给我在片段中创建的适配器实例时,会发生此错误。 完全不知道该怎么办,我发现有些决定对我没有帮助。 我将非常感谢任何建议

错误文本:

java.lang.RuntimeException: Unable to start activity ComponentInfo{space.rodionov.swedishdriller/space.rodionov.swedishdriller.MainActivity}: android.view.InflateException: Binary XML file line #18 in space.rodionov.swedishdriller:layout/activity_main: Binary XML file line #18 in space.rodionov.swedishdriller:layout/activity_main: Error inflating class androidx.fragment.app.FragmentContainerView
片段:

@AndroidEntryPoint
class DrillerFragment : Fragment(R.layout.cardstack_layout), CardStackListener {

    private val viewModel: DrillerViewModel by viewModels()
    private var drillerAdapter = JavaDrillerAdapter(JavaDrillerAdapter.JavaDrillerDiff(), false, requireContext())
在适配器中:

public class JavaDrillerAdapter extends ListAdapter<Word, JavaDrillerAdapter.JavaDrillerViewHolder> {

    private Boolean nativToForeign;

    Context context;

    protected JavaDrillerAdapter(@NonNull DiffUtil.ItemCallback diffCallback, Boolean nativToForeign, Context context) {
    super(diffCallback);
    this.nativToForeign = nativToForeign;
    this.context = context;
}

尝试在
onCreate
方法中移动适配器初始化,视图初始化之前,
上下文不可用:

@AndroidEntryPoint
class DrillerFragment : Fragment(R.layout.cardstack_layout), CardStackListener {

    private val viewModel: DrillerViewModel by viewModels()
    private var drillerAdapter: JavaDrillerAdapter? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        drillerAdapter = JavaDrillerAdapter(JavaDrillerAdapter.JavaDrillerDiff(), false, requireContext())
    }

如果你在
onCreateView
中转移了这个实例化,你会有同样的行为吗谢谢,我移动了它,一切都正常了
class MainActivity : AppCompatActivity() {
    private lateinit var navController: NavController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // THIS IS ALSO THE LINE MENTIONED IN THE ERROR

        val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
        navController = navHostFragment.findNavController()
        // and so on
@AndroidEntryPoint
class DrillerFragment : Fragment(R.layout.cardstack_layout), CardStackListener {

    private val viewModel: DrillerViewModel by viewModels()
    private var drillerAdapter: JavaDrillerAdapter? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        drillerAdapter = JavaDrillerAdapter(JavaDrillerAdapter.JavaDrillerDiff(), false, requireContext())
    }