Android应用已停止工作:java.lang.ClassCastException [关闭]

问题描述 投票:-3回答:3

[当我运行我的应用程序时,它显示“应用程序不断停止”,并且在日志中出现以下错误:2019-12-30 19:00:40.846 13687-13694 /? E /合子:向调试器发送回复失败:管道损坏2019-12-30 19:00:41.279 13687-13687 /? E / AndroidRuntime:致命异常:main流程:com.example.ddanews,PID:13687java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.ddanews / com.example.ddanews.MainActivity}:android.view.InflateException:二进制XML文件行#15:RecyclerView没有LayoutManager androidx.recyclerview.widget。 RecyclerView {d03edbe VFED ..... ...... I。 0,0-0,0},适配器:null,布局:null,上下文:com.example.ddanews.MainActivity@1e99f0d在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)在android.app.ActivityThread.-wrap11(未知来源:0)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1589)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:164)在android.app.ActivityThread.main(ActivityThread.java:6494)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)引起原因:android.view.InflateException:二进制XML文件第15行:RecyclerView没有LayoutManager androidx.recyclerview.widget.RecyclerView {d03edbe VFED ..... 0,0-0,0},适配器:null,布局:null,上下文:com.example.ddanews.MainActivity@1e99f0d造成原因:java.lang.IllegalStateException:RecyclerView没有LayoutManager androidx.recyclerview.widget.RecyclerView {d03edbe VFED ..... 0,0-0,0},适配器:null,布局:null,上下文:com.example.ddanews.MainActivity@1e99f0d在androidx.recyclerview.widget.RecyclerView.generateLayoutParams(RecyclerView.java:4304)在android.view.LayoutInflater.rInflate(LayoutInflater.java:865)在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)在android.view.LayoutInflater.rInflate(LayoutInflater.java:866)在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)在android.view.LayoutInflater.inflate(LayoutInflater.java:515)在android.view.LayoutInflater.inflate(LayoutInflater.java:423)在android.view.LayoutInflater.inflate(LayoutInflater.java:374)在androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)在androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)在com.example.ddanews.MainActivity.onCreate(MainActivity.java:36)在android.app.Activity.performCreate(Activity.java:7009)在android.app.Activity.performCreate(Activity.java:7000)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)在android.app.ActivityThread.-wrap11(未知来源:0)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1589)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:164)在android.app.ActivityThread.main(ActivityThread.java:6494)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

android
3个回答
1
投票

由于您的图像没有完全详细,但是我很确定您为您的应用投射了错误的库。

根据您的图像需要检查的一件事。在xml中,您应该检查RecyclerView库,然后在活动或适配器等中确保使用相同的库。

在您的情况下,您使用了RecyclerView,但是我猜您是铸造或导入了RecyclerListView。因此,请仔细检查您的书架。无论您在活动中分配该recyclerView的位置如何,都应该从那里解决问题。

// you should check this line in global before onCreate
RecyclerView recyclerView;

// then in Activivty.
recyclerView = (RecyclerVeiw) findViewById(R.id.recyclerView) // Or
recyclerView = findViewByd(R.id.recyclerView)

祝你好运


1
投票

您的应用由于类类型不正确而崩溃。

从文档中:

表示该代码已尝试将对象强制转换为不是实例的子类。

例如,以下代码生成ClassCastException

Object x = new Integer(0);
System.out.println((String)x);

在您的声明中,您可能像这样放置了RecycleListView而不是RecyclerView作为recyclerView变量的类型:

RecyclerListView recyclerView;

请尝试验证您添加的列表的实现和用法是否都为RecyclerView(XML和Java类)。

RecyclerView recyclerView;

article应该可以帮助您了解所遇到的一切。


1
投票

其简单的类型转换错误,因此只需导入正确的recyclerview。

它显示RecyclerView应该是androidx.recyclerview.widget.RecyclerView。

  1. 如果您使用的是androidx包,则您的项目应该在AndroidX上
  2. 如果您对recyclerview使用任何其他依赖项,请删除它并重新编译代码。

    implementation 'androidx.appcompat:appcompat:1.1.0'
    
    <androidx.recyclerview.widget.RecyclerView
    android:id="@+id/rvView"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" /> 
    
© www.soinside.com 2019 - 2024. All rights reserved.