Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 Android应用程序中的IndexOutOfBoundsException_Java_Android_Sockets_Exception_Stream - Fatal编程技术网

Java Android应用程序中的IndexOutOfBoundsException

Java Android应用程序中的IndexOutOfBoundsException,java,android,sockets,exception,stream,Java,Android,Sockets,Exception,Stream,我的android应用程序在以下代码部分崩溃: ois = new ObjectInputStream(socket.getInputStream()); Object obj = ois.readObject(); 调用函数readObject()时 它工作了几个小时没有出现问题,然后发生了这样的情况: 07-03 07:52:34.409: E/AndroidRuntime(1600): FATAL EXCEPTION: Thread-215 07-03 07:52:34.409: E/A

我的android应用程序在以下代码部分崩溃:

ois = new ObjectInputStream(socket.getInputStream());
Object obj = ois.readObject();
调用函数readObject()时

它工作了几个小时没有出现问题,然后发生了这样的情况:

07-03 07:52:34.409: E/AndroidRuntime(1600): FATAL EXCEPTION: Thread-215
07-03 07:52:34.409: E/AndroidRuntime(1600): java.lang.IndexOutOfBoundsException: Invalid index 1937902936, size is 28
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.util.ArrayList.get(ArrayList.java:304)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.registeredObjectRead(ObjectInputStream.java:2157)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readCyclicReference(ObjectInputStream.java:833)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:692)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1799)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.util.concurrent.CopyOnWriteArrayList.readObject(CopyOnWriteArrayList.java:766)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.lang.reflect.Method.invokeNative(Native Method)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.lang.reflect.Method.invoke(Method.java:511)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1354)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1266)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1851)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at com.vittorio.floaty.AcceptThread.run(AcceptThread.java:80)
07-03 07:52:34.409: E/AndroidRuntime(1600):     at java.lang.Thread.run(Thread.java:856)

这怎么会发生?我是说指数太大了,没有什么意义。无论如何,我正在交换一个包含ArrayList的序列化对象。

似乎您读取了一个错误的对象。嗯,可能是连接链接上发生了错误,接收方读取对象时遇到了问题?或者可能是难以检测到有关反序列化的错误。请检查发送方是否已启动通信notArrayList具有自定义的读写对象方法。如果你调试有可能你会明白为什么。。。