实际上,原来我没有supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);或requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);在我的代码中,直到我注意到下面的动作组合发生时的运行时异常
User presses Home button to minimize the application and tried to resume it from Recent Apps (which is long press of the home button)
When Screen rotation occurs (Note: The manifest does not have configChange declarations)
然后我认为在初始化期间显示不确定的进度条应该导致问题,所以只有我尝试调用request *方法,认为它会清除它,但没有发生任何事情..
Finally i removed
showPdIndeterminate();
for the sake of testing. Hence nowhere in my code i am showing it. Still the same happens during the aforementioned circumstances
我有一个基于片段的ActionBarActivity,我的布局包含在DrawerLayout中,有两个framelayout来保存两个frgaments.
我尝试了requestFeature() must be called before adding content error on super.onCreate,但仍然是相同的例外
@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(); }
如果我尝试supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);我得到NullPointerException,所以只评论它.
错误日志是:
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
注意:我在方向更改时以及通过按主页按钮从最近的应用程序列表启动时会出现此异常
This exception is **eventually** arising regrdless of having (not having)
setRetainInstance(true);
in fragment’sonActivityCreated() or
onCreate()`
为什么会这样?怎么解决?