matias's
コメントを反映して編集
実は、もともと私はコードにsupportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
orがなかったことに気付くまで、requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
runtime exception when below combinations of actions happened
ユーザーがホームボタンを押してアプリケーションを最小化し、最近のアプリから再開しようとしました(ホームボタンを長押しします) 。
画面の回転が発生した場合 (注: マニフェストにはconfigChange宣言がありません )
次に、初期化中に不確定な進行状況バーを表示することが問題の原因であると考えたので、メソッドを呼び出してみただけでrequest*
、それが解消されると考えましたが、何も起こりませんでした..
showPdIndeterminate();
最後に、テストのために削除しました。したがって、コードのどこにも表示していません。上記の状況でも同じことが起こります
私はフラグメントベースを持っていActionBarActivity
ます.私のレイアウトは2つのフラグメントを保持するために内側DrawerLayout
にラップされています.two framelayouts
私はsuper.onCreateにコンテンツエラーを追加する前にrequestFeature()を呼び出す必要がありますが、それでも同じ例外を試しました
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e(TAG, "Inside OnCreate");
// supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showPdIndeterminate();
....
}
そしてshowPdIndeterminate()
_
private void showPdIndeterminate() {
pd = ProgressDialog.show(this, "Initializing", "Pls wait...");
pd.setIndeterminate(true);
pd.show();
}
NullPointerException
試してみると得supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
られるので、コメントしただけです。
エラーログは次のとおりです。
06-16 04:04:57.280: D/AndroidRuntime(27280): Shutting down VM
06-16 04:04:57.280: W/dalvikvm(27280): threadid=1: thread exiting with uncaught exception (group=0x413592a0)
06-16 04:04:57.285: E/AndroidRuntime(27280): FATAL EXCEPTION: main
06-16 04:04:57.285: E/AndroidRuntime(27280): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demo/com.example.demo.MainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3553)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.access$700(ActivityThread.java:140)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.os.Handler.dispatchMessage(Handler.java:99)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.os.Looper.loop(Looper.java:137)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.main(ActivityThread.java:4898)
06-16 04:04:57.285: E/AndroidRuntime(27280): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 04:04:57.285: E/AndroidRuntime(27280): at java.lang.reflect.Method.invoke(Method.java:511)
06-16 04:04:57.285: E/AndroidRuntime(27280): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
06-16 04:04:57.285: E/AndroidRuntime(27280): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
06-16 04:04:57.285: E/AndroidRuntime(27280): at dalvik.system.NativeStart.main(Native Method)
06-16 04:04:57.285: E/AndroidRuntime(27280): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
06-16 04:04:57.285: E/AndroidRuntime(27280): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:267)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.Activity.requestWindowFeature(Activity.java:3320)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:63)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
06-16 04:04:57.285: E/AndroidRuntime(27280): at com.example.demo.MainActivity.onCreate(MainActivity.java:464)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.Activity.performCreate(Activity.java:5206)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
06-16 04:04:57.285: E/AndroidRuntime(27280): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
06-16 04:04:57.285: E/AndroidRuntime(27280): ... 12 more
注:方向の変更時と、ホームボタンを押して最近のアプリケーションリストから起動したときに、この例外が発生します
setRetainInstance(true);
この例外は、フラグメントのonActivityCreated() or
onCreate()にある (ない) に関係なく、**最終的に**発生 します。
なぜこうなった?それを解決する方法は?