Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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.lang.IllegalArgumentException:指定为非null的参数为null:-android,应用程序正在启动但立即崩溃_Java_Android - Fatal编程技术网

java.lang.IllegalArgumentException:指定为非null的参数为null:-android,应用程序正在启动但立即崩溃

java.lang.IllegalArgumentException:指定为非null的参数为null:-android,应用程序正在启动但立即崩溃,java,android,Java,Android,嘿,伙计们,我在启动我的应用程序时遇到了问题,我不知道是什么问题,当我启动它时,它会立即崩溃,从日志中我想这是关于数据绑定的问题,但我真的不知道是什么问题 现在错了:C 2020-04-10 22:22:22.716 32624-32624/? I/rss.ing_projec: Late-enabling -Xcheck:jni 2020-04-10 22:22:22.746 32624-32624/? E/rss.ing_projec: Unknown bits set in runtime

嘿,伙计们,我在启动我的应用程序时遇到了问题,我不知道是什么问题,当我启动它时,它会立即崩溃,从日志中我想这是关于数据绑定的问题,但我真的不知道是什么问题 现在错了:C

2020-04-10 22:22:22.716 32624-32624/? I/rss.ing_projec: Late-enabling -Xcheck:jni
2020-04-10 22:22:22.746 32624-32624/? E/rss.ing_projec: Unknown bits set in runtime_flags: 0x8000
2020-04-10 22:22:23.053 32624-32624/com.lswarss.ing_project I/Perf: Connecting to perf service.
2020-04-10 22:22:23.070 32624-32624/com.lswarss.ing_project V/Font: Change font:1
2020-04-10 22:22:23.071 32624-32624/com.lswarss.ing_project V/Font: Default family:android.graphics.Typeface@177a2b82
2020-04-10 22:22:23.077 32624-32676/com.lswarss.ing_project E/Perf: Fail to get file list com.lswarss.ing_project
2020-04-10 22:22:23.077 32624-32676/com.lswarss.ing_project E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
2020-04-10 22:22:23.077 32624-32676/com.lswarss.ing_project E/Perf: Fail to get file list com.lswarss.ing_project
2020-04-10 22:22:23.078 32624-32676/com.lswarss.ing_project E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
2020-04-10 22:22:23.156 32624-32624/com.lswarss.ing_project W/rss.ing_projec: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2020-04-10 22:22:23.157 32624-32624/com.lswarss.ing_project W/rss.ing_projec: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2020-04-10 22:22:23.213 32624-32624/com.lswarss.ing_project V/FlingOptimizerScroller: FlingOptimizerOverScroller Init
2020-04-10 22:22:23.251 32624-32624/com.lswarss.ing_project D/AndroidRuntime: Shutting down VM
2020-04-10 22:22:23.253 32624-32624/com.lswarss.ing_project E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.lswarss.ing_project, PID: 32624
    java.lang.RuntimeException: Failed to call observer method
        at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:226)
        at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:194)
        at androidx.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:185)
        at androidx.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:37)
        at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:361)
        at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:300)
        at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:339)
        at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:145)
        at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:131)
        at androidx.fragment.app.Fragment.performStart(Fragment.java:2735)
        at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)
        at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:2583)
        at androidx.fragment.app.Fragment.performStart(Fragment.java:2739)
        at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)
        at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:2583)
        at androidx.fragment.app.FragmentController.dispatchStart(FragmentController.java:258)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:550)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1514)
        at android.app.Activity.performStart(Activity.java:7838)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3398)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
     Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data
        at com.lswarss.ing_project.adapters.BindingAdaptersKt.bindRecyclerView(Unknown Source:7)
        at com.lswarss.ing_project.databinding.PostsFragmentBindingImpl.executeBindings(PostsFragmentBindingImpl.java:125)
2020-04-10 22:22:23.253 32624-32624/com.lswarss.ing_project E/AndroidRuntime:     at androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:473)
        at androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:445)
        at androidx.databinding.ViewDataBinding$OnStartListener.onStart(ViewDataBinding.java:1687)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:216)
            ... 41 more
这是android studio给出的日志 这门课有一些问题,但有什么问题吗

package com.lswarss.ing_project.adapters

import android.view.View
import android.widget.ImageView
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.RecyclerView
import com.lswarss.ing_project.R
import com.lswarss.ing_project.domain.PostItem
import com.lswarss.ing_project.fragments.PostsApiStatus

@BindingAdapter("listData")
fun bindRecyclerView(recyclerView: RecyclerView, data: List<PostItem>?){
    val adapter  = recyclerView.adapter as PostsAdapter
    adapter.submitList(data)
}


@BindingAdapter("postApiStatus")
fun bindStatus(statusImageView: ImageView, status: PostsApiStatus?) {
    when (status) {
        PostsApiStatus.LOADING -> {
            statusImageView.visibility = View.VISIBLE
            statusImageView.setImageResource(R.drawable.loading_animation)
        }
        PostsApiStatus.ERROR -> {
            statusImageView.visibility = View.VISIBLE
            statusImageView.setImageResource(R.drawable.ic_connection_error)
        }
        PostsApiStatus.DONE -> {
            statusImageView.visibility = View.GONE
        }
    }
}

package com.lswarss.ing_project.adapters
导入android.view.view
导入android.widget.ImageView
导入androidx.databinding.BindingAdapter
导入androidx.recyclerview.widget.recyclerview
导入com.lswarss.ing_project.R
导入com.lswarss.ing_project.domain.positem
导入com.lswarss.ing_project.fragments.PostsApiStatus
@BindingAdapter(“listData”)
有趣的bindRecyclerView(recyclerView:recyclerView,数据:列表?){
val adapter=recyclerView.adapter作为PostsAdapter
adapter.submitList(数据)
}
@BindingAdapter(“postApiStatus”)
fun bindStatus(状态ImageView:ImageView,状态:PostsApiStatus?){
何时(状态){
PostsApiStatus.LOADING->{
statusImageView.visibility=视图.VISIBLE
statusImageView.setImageResource(R.drawable.loading_动画)
}
PostsApiStatus.ERROR->{
statusImageView.visibility=视图.VISIBLE
statusImageView.setImageResource(R.drawable.ic\u连接错误)
}
PostsApiStatus.DONE->{
statusImageView.visibility=View.GONE
}
}
}
我正在尝试使用udacity课程制作的应用程序来完成此应用程序火星房地产应用程序

以下是github上我的应用程序的链接: 我遇到问题的代码位于新的分支架构上

很抱歉,如果这是一个愚蠢的问题,但我对android和koltlin还是新手,甚至在stack上发帖:)

之所以会发生这种情况,是因为只要我从github看到,在您的
PostsFragment
中,您没有将适配器设置为recycler视图,因此当绑定适配器尝试访问它时,
null

另外,我在你的主分支中注意到:

viewModel.posts.observe(viewLifecycleOwner, Observer {
    posts -> recycler_view_posts.also{
    it.layoutManager = LinearLayoutManager(requireContext())
    it.setHasFixedSize(true)
    it.adapter = PostsAdapter(posts)
}
你不必每次在屏幕上看到东西时都初始化你的回收器视图

onViewCreated()
方法from fragment中,您可以设置适配器和布局管理器(如果您将其添加到PostsFragment中,这也将解决您的错误):


然后,您只需使用new_architecture branch(
adapter.submitList(list)
)的方法刷新内容,或者通过在adapter中设置新列表并调用
adapter.notifyDataSetChange()
bindRecyclerView
更改为:

@BindingAdapter("listData")
fun bindRecyclerView(recyclerView: RecyclerView, data: List<PostItem>?){
    val adapter  = recyclerView.adapter as PostsAdapter? // changed to nullable type
    adapter?.submitList(data)// nullablity checked
}
@BindingAdapter(“listData”)
有趣的bindRecyclerView(recyclerView:recyclerView,数据:列表?){
val adapter=recyclerView.adapter作为PostsAdapter?//已更改为可为null的类型
适配器?.submitList(数据)//已检查为空
}

是的,但这无法解决问题,因为他没有将适配器设置为回收器。它不会崩溃,但也不会工作。
private fun initRecyclerView(){
    recycler_view_posts.run{
        adapter = PostsAdapter(posts)
        layoutManager = LinearLayoutManager(requireContext())
        setHasFixedSize(true)
    }
}
@BindingAdapter("listData")
fun bindRecyclerView(recyclerView: RecyclerView, data: List<PostItem>?){
    val adapter  = recyclerView.adapter as PostsAdapter? // changed to nullable type
    adapter?.submitList(data)// nullablity checked
}