android项目, 不管什么异常都定位不到具体位置, 会报下面的错误, 麻烦-。-大神能不能看看

hanxiduo9296 2017-10-16 10:56:30
主要就是异常定位不到具体页面,都不知道 是什么错了, 总是会归结成一个异常:如下

10-16 10:02:53.554 23316-23316/com E/AndroidRuntime: FATAL EXCEPTION: main
Process: com, PID: 23316
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.activity.MainActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6175)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
at android.os.Parcel.readValue(Parcel.java:2443)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2798)
at android.os.Parcel.readSparseArray(Parcel.java:2067)
at android.os.Parcel.readValue(Parcel.java:2421)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2717)
at android.os.BaseBundle.unparcel(BaseBundle.java:269)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:910)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1208)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:2893)
at android.support.v4.app.FragmentController.dispatchCreate(FragmentController.java:190)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:353)
at com.basic.BasicActivity.onCreate(BasicActivity.java:27)
at com.activity.MainActivity.onCreate(MainActivity.java:61)
at android.app.Activity.performCreate(Activity.java:6736)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2622)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6175) 
at java.lang.reflect.Method.invoke(Native Method) 
...全文
707 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanxiduo9296 2017-10-17
  • 打赏
  • 举报
回复
引用 14 楼 hanxiduo9296 的回复:
[quote=引用 13 楼 alexxm_001 的回复:] [quote=引用 12 楼 xw13782513621 的回复:] [quote=引用 3 楼 hanxiduo9296 的回复:] Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
因为这个错误是系统抛出来的,是他在检查参数的时候发现错误然后抛出来的,并不是你在设置的时候查出来的 就像你设置了一个对象,然后某个条件触发了事件,被调用了,然后抛了异常,他会显示你是什么时候设值的吗?你不调用又不会错 再来个例子,假如你启动了一个没注册的Activity,抛的异常是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 你看,他也没写出来错误的行数,但是你看到这个,错误应该不难找到吧 IDE又不是万能的,经验问题嘛,有时候还是得靠自己啊[/quote] 典型的被JAVA语言的优点宣传 给祸害的一位;要相信自已的判断,不要太相信人家的宣传!如果这么容易,你期望的薪水能高吗?反思下!! [/quote] 好的吧,确实一年了 啥也没进步,好颓废。。。 谢谢了[/quote] 不对不对,, 大哥,xml的错误 确实是不会定位到具体位置吧,然而没有注册清单文件,就属于xml 里面少写了,当然不会定位到里面告诉你 xml有问题了。。。
hanxiduo9296 2017-10-17
  • 打赏
  • 举报
回复
引用 12 楼 xw13782513621 的回复:
[quote=引用 3 楼 hanxiduo9296 的回复:] Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
因为这个错误是系统抛出来的,是他在检查参数的时候发现错误然后抛出来的,并不是你在设置的时候查出来的 就像你设置了一个对象,然后某个条件触发了事件,被调用了,然后抛了异常,他会显示你是什么时候设值的吗?你不调用又不会错 再来个例子,假如你启动了一个没注册的Activity,抛的异常是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 你看,他也没写出来错误的行数,但是你看到这个,错误应该不难找到吧 IDE又不是万能的,经验问题嘛,有时候还是得靠自己啊[/quote] 也就是正常的现象。。 确实,,, 但是还有点纳闷,我相同的方式 去制造一个异常,缺能定位到。。。 那就结帖了
hanxiduo9296 2017-10-17
  • 打赏
  • 举报
回复
引用 13 楼 alexxm_001 的回复:
[quote=引用 12 楼 xw13782513621 的回复:] [quote=引用 3 楼 hanxiduo9296 的回复:] Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
因为这个错误是系统抛出来的,是他在检查参数的时候发现错误然后抛出来的,并不是你在设置的时候查出来的 就像你设置了一个对象,然后某个条件触发了事件,被调用了,然后抛了异常,他会显示你是什么时候设值的吗?你不调用又不会错 再来个例子,假如你启动了一个没注册的Activity,抛的异常是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 你看,他也没写出来错误的行数,但是你看到这个,错误应该不难找到吧 IDE又不是万能的,经验问题嘛,有时候还是得靠自己啊[/quote] 典型的被JAVA语言的优点宣传 给祸害的一位;要相信自已的判断,不要太相信人家的宣传!如果这么容易,你期望的薪水能高吗?反思下!! [/quote] 好的吧,确实一年了 啥也没进步,好颓废。。。 谢谢了
辉_alexxm 2017-10-17
  • 打赏
  • 举报
回复
引用 12 楼 xw13782513621 的回复:
[quote=引用 3 楼 hanxiduo9296 的回复:] Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
因为这个错误是系统抛出来的,是他在检查参数的时候发现错误然后抛出来的,并不是你在设置的时候查出来的 就像你设置了一个对象,然后某个条件触发了事件,被调用了,然后抛了异常,他会显示你是什么时候设值的吗?你不调用又不会错 再来个例子,假如你启动了一个没注册的Activity,抛的异常是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 你看,他也没写出来错误的行数,但是你看到这个,错误应该不难找到吧 IDE又不是万能的,经验问题嘛,有时候还是得靠自己啊[/quote] 典型的被JAVA语言的优点宣传 给祸害的一位;要相信自已的判断,不要太相信人家的宣传!如果这么容易,你期望的薪水能高吗?反思下!!
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 6 楼 xw13782513621 的回复:
[quote=引用 4 楼 hanxiduo9296 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化[/quote] //开启一个共同的NoTitleAcitivity public void startNoTitleFragment(Bundle bundle, Class<? extends Fragment> aClass) { Intent intent = new Intent(); intent.setClass(IDoctorApplication.sContext, ShowNoTitleActivity.class); intent.putExtra(Configs.ArgumentFragment.SKIPFRAGMENT, aClass); if(bundle != null){ intent.putExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE, bundle); } getActivity().startActivity(intent); } 这样传递的 , 就传字节码丫, 然后,那边 拿到, 反射实例化 fragment
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 2 楼 jklwan 的回复:
Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232 传递的数据实现Parcelable接口后,writeToParcel方法中没写全。
我整个项目都没有 写过-。-parcelable 的序列化。。
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 1 楼 xw13782513621 的回复:
启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
江三木洛 2017-10-16
  • 打赏
  • 举报
回复
引用 4 楼 hanxiduo9296 的回复:
[quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化
jklwan 2017-10-16
  • 打赏
  • 举报
回复
Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232 传递的数据实现Parcelable接口后,writeToParcel方法中没写全。
江三木洛 2017-10-16
  • 打赏
  • 举报
回复
启动另一个Activity时,传递的参数序列化的问题吧
江三木洛 2017-10-16
  • 打赏
  • 举报
回复
引用 3 楼 hanxiduo9296 的回复:
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。
因为这个错误是系统抛出来的,是他在检查参数的时候发现错误然后抛出来的,并不是你在设置的时候查出来的 就像你设置了一个对象,然后某个条件触发了事件,被调用了,然后抛了异常,他会显示你是什么时候设值的吗?你不调用又不会错 再来个例子,假如你启动了一个没注册的Activity,抛的异常是 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 你看,他也没写出来错误的行数,但是你看到这个,错误应该不难找到吧 IDE又不是万能的,经验问题嘛,有时候还是得靠自己啊
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 10 楼 xw13782513621 的回复:
[quote=引用 9 楼 hanxiduo9296 的回复:] [quote=引用 6 楼 xw13782513621 的回复:] [quote=引用 4 楼 hanxiduo9296 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化[/quote] 我找到我的真实错误位置了 : 是 MainActivity 里面开启的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value()) 这句话, 空了, 就不能转换成Integer 了[/quote] 。。。。。。[/quote] 但是我是用眼睛找到的呐-。- 还是不能具体定位到那个真正错误的地方,, 大神别走, 能不能再思考一下,为什么,不能定位直接找到报错的地方, 不然很难受,每次都要自己去 代码里找
江三木洛 2017-10-16
  • 打赏
  • 举报
回复
引用 9 楼 hanxiduo9296 的回复:
[quote=引用 6 楼 xw13782513621 的回复:] [quote=引用 4 楼 hanxiduo9296 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化[/quote] 我找到我的真实错误位置了 : 是 MainActivity 里面开启的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value()) 这句话, 空了, 就不能转换成Integer 了[/quote] 。。。。。。
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 6 楼 xw13782513621 的回复:
[quote=引用 4 楼 hanxiduo9296 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化[/quote] 我找到我的真实错误位置了 : 是 MainActivity 里面开启的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value()) 这句话, 空了, 就不能转换成Integer 了
hanxiduo9296 2017-10-16
  • 打赏
  • 举报
回复
引用 6 楼 xw13782513621 的回复:
[quote=引用 4 楼 hanxiduo9296 的回复:] [quote=引用 1 楼 xw13782513621 的回复:] 启动另一个Activity时,传递的参数序列化的问题吧
Intent intent = getIntent(); Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT); Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE); 确实我传递了参数, 传递的 class 类 有问题吗。。。[/quote] 你怎么传递的啊?不会报错吗? 启动Activity需要通过进程间通信,所有参数要么是基本类型,要么必须序列化[/quote] 我有个 新想法。。 我从 MainActivity 开启了一个新的 Bactivity ,这个Bactivity 由于异常报错崩了, 所以要界面要跳回 MainActivity ,但是传递某个东西的时候系列化异常 导致 MainActivity也开启不了, 就报错 这样的错。。。。。。

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧