屏幕旋转导致android应用程序崩溃

屏幕旋转导致android应用程序崩溃,android,android-configchanges,Android,Android Configchanges,我是android开发新手。我开发了一个应用程序,现在的问题是,每当我旋转屏幕,应用程序就会再次启动活动,然后它的应用程序崩溃。 我在谷歌上找到了一些使用android:configChanges=“orientation”的解决方案。它工作正常,但当我旋转屏幕时,它的屏幕大小并没有改变。 如何解决这个问题 日志: 05-28 14:32:52.038:E/AndroidRuntime(276):致命异常:主 05-28 14:32:52.038:E/AndroidRuntime(276):ja

我是android开发新手。我开发了一个应用程序,现在的问题是,每当我旋转屏幕,应用程序就会再次启动活动,然后它的应用程序崩溃。 我在谷歌上找到了一些使用android:configChanges=“orientation”的解决方案。它工作正常,但当我旋转屏幕时,它的屏幕大小并没有改变。 如何解决这个问题

日志:

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):在android.app.Dialog.access$000(Dialog.java:71) 05-28 14:32:52.038:E/AndroidRuntime(276):在android.app.Dialog$1.run(Dialog.java:111) 05-28 14:32:52.038:E/AndroidRuntime(276):在android.app.Dialog.disclose(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.Invokenactive(本机方法) 05-28 14:32:52.038:E/AndroidRuntime(276):位于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(本机方法)


你的问题太模糊了。我所能说的就是你需要检查一下你的日志猫,看看你的应用程序为什么会崩溃

我建议大家快速阅读一下
希望这对您有所帮助。

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

android:configChanges="orientation|keyboardHidden|screenSize"
如下

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


您必须删除应用程序中的bug……但它工作正常。我应该检查什么?如果没有更多的细节和一些源代码java.lang.IllegalArgumentException:视图未附加到窗口管理器我不知道为什么人们如此有兴趣投票否决???你们可以很好地发展,但这并不意味着你们可以像这样对待初学者。代码是:if(dialog!=null){if(dialog.isShowing()){dialog.cancel();}}}那么为什么在使用oriention时它会起作用呢?我不知道为什么人们对投票反对这么感兴趣???你可以很好地发展,但这并不意味着你会像这样对待初学者。忽略他们。=)我认为“卡鲁维拉”给了你一个答案,你应该做什么。我发布的链接告诉您:“注意:如果您的应用程序的目标API级别为13或更高(由minSdkVersion和targetSdkVersion属性声明),那么您还应该声明“屏幕大小”配置,因为当设备在纵向和横向之间切换时,配置也会发生变化。”是的,mazin Al-Bahrni。在实际装置中运行良好。那个么为什么它会在emulator中给出prob呢?但当我将屏幕从正常旋转到纵向时,它的屏幕大小并没有改变。该怎么办???您是否在清单中的活动标记上添加了上述行?等等,让我看看我的设计部分。我想这会解决我的问题。谢谢。我不知道为什么人们这么有兴趣投反对票???你可以很好地发展,但这并不意味着你会像这样对待初学者。这个解决方案对我很有效。随着屏幕的旋转,布局也发生了正确的变化。我知道这是一个老生常谈的答案,但当你把它放在舱单上时,是否有一个特殊的权衡?为什么你不想每次都这样做?