写了个小程序,运行期间很正常,但是每次关闭程序的时候都会报一个意外停止的错误,可是不知道问题出在哪,大家有没有些思路什么的~~~

解决方案 »

  1.   

    遇到这种情况你应该先看log里的错误信息,一般都能根据提示找到错在哪行。那时还不知道怎么办再把log及部分代码贴上来~ 
      

  2.   


    我看了log得错误信息,但是不知道问题是什么意思:11-07 13:27:14.857: ERROR/AndroidRuntime(364): FATAL EXCEPTION: main
    11-07 13:27:14.857: ERROR/AndroidRuntime(364): android.app.SuperNotCalledException: Activity {com.geolo.android/com.geolo.android.MainActivity} did not call through to super.onDestroy()
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2847)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2876)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.app.ActivityThread.access$2100(ActivityThread.java:123)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1026)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.os.Handler.dispatchMessage(Handler.java:99)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.os.Looper.loop(Looper.java:126)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at android.app.ActivityThread.main(ActivityThread.java:3997)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at java.lang.reflect.Method.invoke(Method.java:491)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    11-07 13:27:14.857: ERROR/AndroidRuntime(364):     at dalvik.system.NativeStart.main(Native Method)
      

  3.   

    从字面上看是你onDestory方法里没调用super.onDestory();
      

  4.   

    11-07 13:27:14.857: ERROR/AndroidRuntime(364): android.app.SuperNotCalledException: Activity {com.geolo.android/com.geolo.android.MainActivity} did not call through to super.onDestroy()
      

  5.   

    谢谢,我看了一下我的onDestroy方法,是这样的
    protected void onDestroy( ) {
    // TODO Auto-generated method stub
    if(mayDes)
    super.onDestroy();
    }
    多了一个if语句,但是我把if语句注释掉以后还是会报同样地错。。
      

  6.   

    我测了一下。注释掉super.onDestroy(); 报你一样的错。取消注释没报错。
    你不要重写onDestroy看会不会报错。
      

  7.   


    我干脆直接把onDestroy给删掉,在别处finish掉了。。这下没问题了。汗
      

  8.   


    你注掉if后,测试还是报错是不是因为代码没有重新编译咩?乃clean下..看看有没有问题.照理说注掉if后应该不会报错的咩...t5721654哥哥给解释下呢。
      

  9.   

    据我的理解...退出程序时系统要去回收Activity.至于怎么回收的做了什么,写在基类的onDestory中了,我们要做的就是在这基础上加点自己需要的代码。看高焕堂讲义就知道android应用层是个控制反转的框架~也就是说控制权在框架手中,注释掉了onDestory,框架销毁这个activity时找不到基类的onDestory方法。就报错了~
      

  10.   


        public void onDestroy() { 
            try{ 
                 //这里是你需销毁的事件
            } 
            catch(Exception ex){} 
            super.onDestroy(); 
        }用finish()方法会调用onDestroy()
      

  11.   

    我在activity 的onDestroy(); 方法中执行了return 语句,而super.onDestroy(); 写到了最后一行,导致魔种情况下没有执行到super.onDestroy();方法而抛异常,谢谢各位的提醒。