当从第二个活动返回到第一个活动时,应用程序强制关闭,第一个活动不再有效,必须再次重新启动

时间:2011-12-04 06:34:35

标签: android json android-activity

我正在设计一个允许用户从服务器检索数据的应用程序,我使用两种不同的活动来提供这个,第一个接收用户名作为文本输入,第二个显示用户的数据基于用户名。我使用JSON模式来存储和检索数据。该应用程序第一次正常工作,但是当我使用finish()从第二个屏幕注销并尝试在第一个屏幕中重新输入新的用户名时,应用程序强制关闭"。这给了我不眠之夜,希望被你的支持所压倒。

  

12-04 16:28:35.289:D / dalvikvm(553):GC_FOR_ALLOC释放64K,4%免​​费6893K / 7171K,暂停64ms   12-04 16:28:35.299:I / dalvikvm-heap(553):将堆(frag case)增长到7.757MB以进行1000016字节分配   12-04 16:28:35.399:D / dalvikvm(553):GC_CONCURRENT释放1K,5%释放7868K / 8199K,暂停16ms + 3ms   12-04 16:28:35.529:D / dalvikvm(553):GC_FOR_ALLOC释放< 1K,5%free 7869K / 8199K,暂停31ms   12-04 16:28:35.539:I / dalvikvm-heap(553):将堆(frag case)增长到8.180MB以进行443572字节分配   12-04 16:28:35.589:D / dalvikvm(553):GC_CONCURRENT释放0K,4%释放8302K / 8647K,暂停3ms + 5ms   12-04 16:28:35.889:D / gralloc_goldfish(553):未检测到GPU仿真的仿真器。   12-04 16:29:16.819:D / dalvikvm(553):GC_FOR_ALLOC释放1079K,14%免费7509K / 8711K,暂停221ms   12-04 16:29:16.829:I / dalvikvm-heap(553):将堆(frag case)增长到8.360MB以进行1000016字节分配   12-04 16:29:16.889:D / dalvikvm(553):GC_CONCURRENT释放2K,3%释放8483K / 8711K,暂停4ms + 4ms   12-04 16:29:17.229:D / dalvikvm(553):GC_CONCURRENT释放1016K,13%免费7979K / 9159K,暂停3ms + 11ms   12-04 16:29:18.149:E / log_tag(553):解析数据时出错org.json.JSONException:没有Alert值   12-04 16:29:20.949:D / dalvikvm(553):GC_CONCURRENT释放274K,12%释放8090K / 9159K,暂停6ms + 5ms   12-04 16:29:26.259:E / log_tag(553):解析数据时出错org.json.JSONException:没有Alert的值   12-04 16:29:26.859:D / AndroidRuntime(553):关闭VM   12-04 16:29:26.859:W / dalvikvm(553):threadid = 1:线程退出,未捕获异常(group = 0x409951f8)   12-04 16:29:26.929:E / AndroidRuntime(553):致命异常:主要   12-04 16:29:26.929:E / AndroidRuntime(553):java.lang.RuntimeException:无法启动活动ComponentInfo {com.bombil.kustomizer / com.bombil.kustomizer.Menus}:java.lang.IndexOutOfBoundsException:无效索引2,大小为2   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread.access $ 600(ActivityThread.java:122)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1146)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.os.Handler.dispatchMessage(Handler.java:99)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.os.Looper.loop(Looper.java:137)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread.main(ActivityThread.java:4340)   12-04 16:29:26.929:E / AndroidRuntime(553):at java.lang.reflect.Method.invokeNative(Native Method)   12-04 16:29:26.929:E / AndroidRuntime(553):at java.lang.reflect.Method.invoke(Method.java:511)   12-04 16:29:26.929:E / AndroidRuntime(553):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)   12-04 16:29:26.929:E / AndroidRuntime(553):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)   12-04 16:29:26.929:E / AndroidRuntime(553):at dalvik.system.NativeStart.main(Native Method)   12-04 16:29:26.929:E / AndroidRuntime(553):引起:java.lang.IndexOutOfBoundsException:索引2无效,大小为2   12-04 16:29:26.929:E / AndroidRuntime(553):at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)   12-04 16:29:26.929:E / AndroidRuntime(553):at java.util.ArrayList.get(ArrayList.java:304)   12-04 16:29:26.929:E / AndroidRuntime(553):at com.bombil.kustomizer.Menus.AddEditText(Menus.java:309)   12-04 16:29:26.929:E / AndroidRuntime(553):at com.bombil.kustomizer.Menus.AddInsertView(Menus.java:121)   12-04 16:29:26.929:E / AndroidRuntime(553):at com.bombil.kustomizer.Menus.onCreate(Menus.java:88)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.Activity.performCreate(Activity.java:4465)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)   12-04 16:29:26.929:E / AndroidRuntime(553):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)   12-04 16:29:26.929:E / AndroidRuntime(553):... 11更多   12-04 16:29:27.009:D / dalvikvm(553):GC_CONCURRENT释放273K,10%免费8248K / 9159K,暂停4ms + 6ms   12-04 16:32:56.799:I / Process(553):发送信号。 PID:553 SIG:9

2 个答案:

答案 0 :(得分:0)

您是否有两个活动正在使用的对象?我知道我曾经用一个项目看过这个问题。其中一项活动是搞乱其他活动的HTTPClient对象。如果要获取抛出的null异常,请尝试查找变量。如果它是两个活动的共享资源,那么只需确保在退出第二个活动时以干净的方式处理它。

答案 1 :(得分:0)

显然,您正尝试在第309行的Menus.java文件中访问ArrayList中的对象。您正在尝试访问索引为2的对象,但总的ArrayList大小仅为2,意味着最高的索引是1.这会导致IndexOutOfBounds异常,如下所示:

    ComponentInfo{com.bombil.kustomizer/com.bombil.kustomizer.Menus}:
 java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2

E/AndroidRuntime(553): at com.bombil.kustomizer.Menus.AddEditText(Menus.java:309)