2013-10-09 94 views
-2

這裏是我走對輸出:Android的碎片IllegalStateException異常

10-09 21:57:56.344: W/dalvikvm(3141): threadid=1: thread exiting with uncaught exception (group=0x40cb8378) 
10-09 21:57:56.364: E/AndroidRuntime(3141): FATAL EXCEPTION: main 
10-09 21:57:56.364: E/AndroidRuntime(3141): java.lang.IllegalStateException: Activity has been destroyed 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1329) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:548) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:532) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.trade.MainActivity.showFragment(MainActivity.java:85) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.trade.MainActivity.showSettingsFragment(MainActivity.java:179) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.trade.Home.setting(Home.java:40) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.trade.Home.onOptionsItemSelected(Home.java:31) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.app.Activity.onMenuItemSelected(Activity.java:2534) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:964) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:166) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.widget.AdapterView.performItemClick(AdapterView.java:298) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.widget.AbsListView.performItemClick(AbsListView.java:1086) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:2859) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.widget.AbsListView$1.run(AbsListView.java:3533) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.os.Handler.handleCallback(Handler.java:615) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.os.Looper.loop(Looper.java:213) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at android.app.ActivityThread.main(ActivityThread.java:4787) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at java.lang.reflect.Method.invoke(Method.java:511) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
10-09 21:57:56.364: E/AndroidRuntime(3141):  at dalvik.system.NativeStart.main(Native Method) 
10-09 21:57:58.847: I/Process(3141): Sending signal. PID: 3141 SIG: 9 

唯一的例外是未知的我。請幫我理解它。

感謝

+0

你正在嘗試做什麼?我認爲你是試圖訪問一個已經被破壞的活動,提供一些細節,所以我可以幫助 –

+0

請出示你的'MainActivity' – avalancha

+0

在代碼中,你有沒有這樣做'thisActivity =新MainActivity()'?如果你這樣做,然後停下來!唯一應該引用「Activity」的是它本身。 – Simon

回答

0

我會盡我所能來回答你的問題,一般在一般考慮到錯誤時拋出,因爲這是你的要求。如果您希望在應用程序中遇到特定問題的具體幫助,您需要在此發佈您的MainActivity(尤其是85行左右的部分)。

你得到的消息是一個安卓系統例外,它告訴你,你正在運行一個不再「活着」的Activity。這是非常容易實現,並具有最有可能與不當可變householding做(或在你的問題下面的評論中提到不當實例householding。不要通過new操作建立自己Activity實例)。一個例子可能是如下

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 

public class MyActivity extends Activity { 

    public static Activity instance; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (instance != null) { 
      instance.setContentView(R.layout.myLayout); 
     } 

     instance = this; 

     finish(); 
     startActivity(new Intent(this, MyActivity.class)); 
    } 
} 

正如你可能在這個簡單的例子認識,變量instance只在第一次閱讀重新 -entrance到活動!但是,那裏仍然提到了舊的(現在是「死亡」)活動。那麼系統應該做什麼?對此「死」活動執行一個操作?不,它會給你上面看到的異常

所以簡而言之:很可能你有一個FragmentDialog或另一個UI「操作」一個「死」的活動(操作=使用對它的引用或其中的某些資源(FragmentManager ...)

正如我所說的,您的錯誤可能很容易解決,請將您的代碼給我們,我們將能夠提供幫助。但是,也許你甚至可以使用以上信息來修復它自己 - 這肯定會更滿意自己我猜:)

+0

對不起朋友晚了,我解決它,重新設計整個應用程序邏輯,非常感謝的努力和支持 – user2863183

+0

以及你通過我們的幫助,瞭解一些例外呢?如果是這樣,你總是可以upvote ... – avalancha

相關問題