Android对象实现Parcelable接口产生的异常
来源:互联网 发布:知乎回答被删除 编辑:程序博客网 时间:2024/06/09 18:28
前言
这是在最近项目中产生的异常,经过反复测试,终于找到了出错的那行代码,网上的资源虽然多但是找不到我想要的,所以还是记录一下,有时间好好找一找原因
异常产生的环境说明
项目有一个环节是:弹出dialog,点击dialog跳到一个webviewActivity中,然后值是通过Bundle传递的,Bundle里有两个对象,一个实现了Parcelable,一个实现了Serializable(ps:不要问我为什么要两个实现不一样的接口,可能就是想让我看到这个变态的异常),然后初次请求是能正常跳转的,第二次点击的时候就崩了,崩了就算了,还疯狂创建该项目的进程,点击一次创建3个新进程.
以下是部分异常的信息
03-10 16:03:01.233 9629-9629/com.baidu.ads I/Timeline: Timeline: Activity_launch_request id:com.baidu.ads time:76004203-10 16:03:01.273 9629-9629/com.baidu.ads D/WebView: [WebView::mustAttachToEglContext] [android.view.ViewRootImpl@41d62158] isHw=[true] eglContext=[com.google.android.gles_jni.EGLContextImpl@6172f490]03-10 16:03:01.283 9629-9629/com.baidu.ads W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.03-10 16:03:01.283 9629-9629/com.baidu.ads W/ViewRootImpl: Dropping event due to root view being removed: MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=284.0, y[0]=263.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=760024, downTime=760024, deviceId=7, source=0x1002 }03-10 16:03:01.523 9629-9629/com.baidu.ads W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
另外产生的新进程里的异常信息
03-10 15:54:46.323 6961-6961/com.baidu.ads D/dalvikvm: Late-enabling CheckJNI03-10 15:54:46.413 6961-6961/com.baidu.ads D/ActivityThread: handleBindApplication:com.baidu.ads03-10 15:54:46.413 6961-6961/com.baidu.ads D/ActivityThread: setTargetHeapUtilization:0.7503-10 15:54:46.413 6961-6961/com.baidu.ads D/ActivityThread: setTargetHeapMinFree:209715203-10 15:54:46.413 6961-6961/com.baidu.ads D/ActivityThread: setTargetHeapConcurrentStart:209715203-10 15:54:46.433 6961-6961/com.baidu.ads I/InstantRun: Instant Run Runtime started. Android package is com.baidu.ads, real application class is null.03-10 15:54:46.433 6961-6961/com.baidu.ads W/InstantRun: No instant run dex files added to classpath03-10 15:54:46.443 6961-6961/com.baidu.ads E/InstantRun: IO Error creating local socket at com.baidu.ads java.io.IOException: Address already in use at android.net.LocalSocketImpl.bindLocal(Native Method) at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:311) at android.net.LocalServerSocket.<init>(LocalServerSocket.java:52) at com.android.tools.fd.runtime.Server.<init>(Server.java:94) at com.android.tools.fd.runtime.Server.create(Server.java:88) at com.android.tools.fd.runtime.BootstrapApplication.onCreate (BootstrapApplication.java:359)at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1009)at android.app.ActivityThread.handleBindApplication (ActivityThread.java:4632) at android.app.ActivityThread.access$1800(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1298) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5336) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:873) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689) at dalvik.system.NativeStart.main(Native Method)03-10 15:56:52.523 6961-6967/com.baidu.ads D/dalvikvm: Debugger has detached; object registry had 1 entries
异常说明及解决
好吧,我只能看到进程里说是socket异常,地址被重复使用了,还是不能理解,只能慢慢改代码,然后就定位到把intent发消息的那一行,最后把对象实现Parcelable改为实现
Serializable就正常了
当然,这个异常不是每个手机上都会出现的,
三星6.0.1 N9100 出现崩溃但没有创建多个进程,
华为4.4.4、oppo4.4.4、三星4.0.1I699I 崩溃并且创建多个进程
但是htc4.4.4 M8w正常
我还能说什么呢?????
最后
以上是我的记录,如果哪位大神知道原因,还请告知一下,万分感谢,我自己有时间也抓紧看一看
0 0
- Android对象实现Parcelable接口产生的异常
- android对象实现Parcelable接口
- android开发中对象的序列化-实现Parcelable接口.
- Android 实现Parcelable接口序列化对象
- Android 实现Parcelable接口
- android中Parcelable接口的实现
- Android中Parcelable接口的实现方法
- Parcelable接口的实现
- android的parcelable接口
- Android的Parcelable接口
- android intent 传递对象需要序列化实现Parcelable接口
- Android 中对象实现序列化之Parcelable接口
- 【android实战经验】实现Parcelable接口进行对象序列化
- Android 快速实现Parcelable接口
- 使用intent传递实现Serializable、Parcelable接口的类对象
- Android Intent Parcelable接口传递对象遇到的问题
- 借助Intent实现Android工程中Activity之间Java对象的传递——实现Parcelable接口
- 借助Intent实现Android工程中Activity之间Java对象的传递——实现Parcelable接口
- JavaScript、JQuery-数组
- 小伙的java之旅——注解
- SylixOS DNS浅析
- 典型关联分析(CCA)原理总结
- Linux之Shell编程学习
- Android对象实现Parcelable接口产生的异常
- html5注解1
- 顺序查找及简单优化
- [Crawler] Get the real file link of BaiduYun shared by user with Chrome
- Qt调试时“调试器未设置”
- 2017,VR技术将重新定义未来
- iOS中的runtime和runloop
- 第一个 Gradle 脚本及简单命令
- 大小端转换 int16 和int32