我有一个Android应用程序,我支持并在多次调用其中一个活动之后,在尝试从intent中获取额外内容时抛出stackoverflowerror。这是从崩溃时的堆栈跟踪。任何想法为什么在下次调用活动至少4次之后抛出StackOverflowError时,从意图中获取额外内容?调用Intent.getStringExtra()定期抛出StackOverflowError
用于建立意图的代码,并包含字符串,字符串,布尔值,对象:
Intent videoIntent = new Intent(this, VideoPlayer.class);
videoIntent.putExtra(AppNames.EXTRA_VIDEO_URI, uri);
videoIntent.putExtra(AppNames.EXTRA_VIDEO_TITLE, channel.getName());
videoIntent.putExtra(AppNames.EXTRA_VIDEO_MODE_RESUME, false);
videoIntent.putExtra(AppNames.EXTRA_MCD_CHANNEL, channel);
startActivity(videoIntent);
和被投掷的StackOverflowError代码:
uri = getIntent().getStringExtra(AppNames.EXTRA_VIDEO_URI);
I/dalvikvm(1719): Stack overflow, expanding (0x41048200 to 0x41048000)
I/dalvikvm(1719): Shrank stack (to 0x41048200, curFrame is 0x4104834c)
D/AndroidRuntime(1719): Shutting down VM
W/dalvikvm(1719): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
E/AndroidRuntime(1719): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(1719): java.lang.StackOverflowError
E/AndroidRuntime(1719): at java.lang.reflect.ReflectionAccessImpl.clone(ReflectionAccessImpl.java:38)
E/AndroidRuntime(1719): at java.lang.Class.getDeclaredMethod(Class.java:765)
E/AndroidRuntime(1719): at java.io.ObjectStreamClass.getPrivateReadObjectMethod(ObjectStreamClass.java:789)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1525)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1296)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:545)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1549)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.util.ArrayList.readObject(ArrayList.java:702)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1534)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1296)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:545)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1549)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.util.ArrayList.readObject(ArrayList.java:702)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1534)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1296)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:545)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1549)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:2124)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:956)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2289)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2243)
E/AndroidRuntime(1719): at java.util.ArrayList.readObject(ArrayList.java:702)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1719): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1534)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1455)
E/AndroidRuntime(1719): at java.io.ObjectInputStream.readNew
D/dalvikvm(1719): GC freed 6315 objects/501704 bytes in 154ms
I/Process ( 56): Sending signal. PID: 1719 SIG: 3
I/dalvikvm(1719): threadid=7: reacting to signal 3
你在演员中包装了什么? – CommonsWare 2010-01-25 10:45:23
更新了信息以显示创建Intent和用于将信息拉出的代码。但简而言之,String,String,boolean,Object – stewbv 2010-01-25 14:37:56