屏幕旋转会导致Android应用崩溃 [英] Rotation of screen crashes android app

查看:484
本文介绍了屏幕旋转会导致Android应用崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是android开发的新手。我已经开发了一个应用程序,现在的问题是,每当我旋转屏幕时,应用程序都会再次开始活动,然后崩溃。
我在Google上找到了一些使用 android:configChanges = orientation 的解决方案。它工作正常,但是当我旋转屏幕时,它的屏幕大小不会改变。
如何解决此问题?

I am new to android development. I have developed one app, now the problem is that whenever I rotate screen, app starts activity again and then its crashes application. I found some solution on google to use android:configChanges="orientation" . It works fine but when I rotate screen, its screen size does not change. How to solve this problem ?

Logact:


05 -28 14:32:52.038:E / AndroidRuntime(276):致命异常:主
05-28 14:32:52.038:E / AndroidRuntime(276):java.lang.IllegalArgumentException:视图未附加到窗口经理
05-28 14:32:52.038:E / AndroidRuntime(276):在android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
05-28 14:32:52.038:E / AndroidRuntime(276):位于android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
05-28 14:32:52.038:E / AndroidRuntime(276):位于android.view.Window $ LocalWindowManager。 removeView(Window.java:432)
05-28 14:32:52.038:E / AndroidRuntime(276):位于android.app.Dialog.dismissDialog(Dialog.java:278)
05-28 14:32:52.038:E / AndroidRuntime(276):at android.app.Dialog.access $ 000(Dialog.java:71)
05-28 14:32:52.038:E / AndroidRuntime(276):at android.app.Dialog $ 1.run(Dialog.java:111)
05-28 14:32:52.038:E / AndroidRuntim e(276):在android.app.Dialog.dismiss(Dialog.java:268)
05-28 14:32:52.038:E / AndroidRuntime(276):在android.app.Dialog.cancel(Dialog .java:951)
05-28 14:32:52.038:E / AndroidRuntime(276):在com.MobileWeb.mytestbuddy.PremiumMain $ TheTask.onPostExecute(PremiumMain.java:373)
05- 28 14:32:52.038:E / AndroidRuntime(276):com.MobileWeb.mytestbuddy.PremiumMain $ TheTask.onPostExecute(PremiumMain.java:1)
05-28 14:32:52.038:E / AndroidRuntime( 276):位于android.os.AsyncTask.finish(AsyncTask.java:417)
05-28 14:32:52.038:E / AndroidRuntime(276):位于android.os.AsyncTask.access $ 300(AsyncTask。 java:127)
05-28 14:32:52.038:E / AndroidRuntime(276):位于android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:429)
05-28 14: 32:52.038:E / AndroidRuntime(276):在android.os.Handler.dispatchMessage(Handler.java:99)
05-28 14:32:52.038:E / AndroidRuntime(276):在android.os .Looper.loop(Looper.java:123)
05-28 14:32:52.038:E / AndroidRuntime( 276):位于android.app.ActivityThread.main(ActivityThread.java:4627)
05-28 14:32:52.038:E / AndroidRuntime(276):位于java.lang.reflect.Method.invokeNative(Native Method)
05-28 14:32:52.038:E / AndroidRuntime(276):at java.lang.reflect.Method.invoke(Method.java:521)
05-28 14:32: 52.038:E / AndroidRuntime(276):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
05-28 14:32:52.038:E / AndroidRuntime(276):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-28 14:32:52.038:E / AndroidRuntime(276):在dalvik.system.NativeStart.main(本机方法) )

05-28 14:32:52.038: E/AndroidRuntime(276): FATAL EXCEPTION: main 05-28 14:32:52.038: E/AndroidRuntime(276): java.lang.IllegalArgumentException: View not attached to window manager 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.view.Window$LocalWindowManager.removeView(Window.java:432) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.dismissDialog(Dialog.java:278) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.access$000(Dialog.java:71) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog$1.run(Dialog.java:111) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.dismiss(Dialog.java:268) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.Dialog.cancel(Dialog.java:951) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.MobileWeb.mytestbuddy.PremiumMain$TheTask.onPostExecute(PremiumMain.java:373) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.MobileWeb.mytestbuddy.PremiumMain$TheTask.onPostExecute(PremiumMain.java:1) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask.finish(AsyncTask.java:417) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask.access$300(AsyncTask.java:127) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.Handler.dispatchMessage(Handler.java:99) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.os.Looper.loop(Looper.java:123) 05-28 14:32:52.038: E/AndroidRuntime(276): at android.app.ActivityThread.main(ActivityThread.java:4627) 05-28 14:32:52.038: E/AndroidRuntime(276): at java.lang.reflect.Method.invokeNative(Native Method) 05-28 14:32:52.038: E/AndroidRuntime(276): at java.lang.reflect.Method.invoke(Method.java:521) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 05-28 14:32:52.038: E/AndroidRuntime(276): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 05-28 14:32:52.038: E/AndroidRuntime(276): at dalvik.system.NativeStart.main(Native Method)


推荐答案

您可以通过在应用程序的清单文件中添加以下内容来避免重新创建活动。

You can avoid activity recreation by adding following to your application's manifest file.

android:configChanges="orientation|keyboardHidden|screenSize"

如下

      <activity
        android:name=".your activity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name" >
    </activity>

这篇关于屏幕旋转会导致Android应用崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆