【问题标题】:Impossible to rotate the emulator with android 4.4 [duplicate]无法使用 android 4.4 旋转模拟器 [重复]
【发布时间】:2013-11-12 15:01:01
【问题描述】:

我已将我的 sdk 更新到最新版本(android 4.4)并启动了模拟器,但现在似乎无法使用 CTRL+F11 旋转屏幕,屏幕会发生变化,但所有应用程序都不会改变。我不知道这是否是一个相关问题,但我可以看到,即使我创建了一个带有菜单 hw 按钮的新模拟器,现在所有应用程序都有溢出按钮。

【问题讨论】:

    标签: android android-emulator android-4.4-kitkat


    【解决方案1】:

    CommonsWare 描述的模拟器中似乎存在错误,但是,如果您迫切需要在 4.4 模拟器上以横向模式调试应用程序,您可以:

    1. 在模拟器上启动相机应用程序,它将旋转 屏幕。
    2. 现在退出应用程序,主屏幕现在应该是 侧身。
    3. 按 Ctrl + F11 即可。 (在 Mac 上为 Ctrl + fn + F11)。

    【讨论】:

    • 工作就像一个魅力!先旋转然后点击相机应用
    • 太棒了……但在 Android 上出现这么多故障,真是太可惜了。
    • 相机应用无法在我的 nexus 10 avd 上启动,所以我无法尝试这个技巧。 悲伤的脸
    • 您也可以使用 Google 日历应用程序执行此操作。
    • @VM4,你是怎么发现的?
    【解决方案2】:

    我在使用运行 Android 5.0.1 的模拟器时遇到了同样的问题。但是,我能够通过使用带有 Intel x86 Atom 系统映像而不是 Intel x86 Atom_64 系统映像的模拟器来解决。

    【讨论】:

      【解决方案3】:

      我已经找到了解决这个问题的方法 -

      • 使用您想要的任何设置创建模拟器,但将目标设置为 低于 Android 4.4。

      例如——

      我将它设置为以下-->

      注意:

      因为我想使用带有 Google Maps API 的 Android 4.4,所以我在这里使用带有 Google Maps API 的 Android 4.2.2。

      • 创建 AVD 后,启动它并让它完全启动。

      • 现在回到这个 AVD 并编辑它。在这里,您将目标设置为 带有 Google Maps API 的 Android 4.4。

      例如——

      我将它设置为以下-->

      • 现在启动应用程序并以您想要的方式旋转。有效 太棒了!

      【讨论】:

      • 为什么这被否决了?
      【解决方案4】:

      有一个解决方法。似乎 GUI 中的设置没有保存到 ini 文件中。我必须手动编辑 avd 目录中的 config.ini 和 hardware-qemu.ini 中的字段“hw.keyboard=no”。

      【讨论】:

      • 为什么hw.keyboard设置有效果?
      • 我不知道,但出于某种原因确实如此。当我第一次创建自定义 avd 时,一切正常,因为我禁用了所有非必要的选项。当我稍后回去编辑它时,我注意到一旦我打开它,它就会改变操作系统屏幕的方向而不是设备。我仍然是纵向的,但界面是横向的。那时我注意到我在 GUI 中所做的更改并没有应用于 ini 文件。我不确定是否需要更改两者,但无论如何我都对它们进行了更改,并且它恢复了正常。
      【解决方案5】:

      在 manifestfile.xml 中可以放 android:screenOrientation="landscape"。 加载后,您会看到每个应用都处于横向模式

      【讨论】:

      • 感谢您的提示。我正在使用上面 vldmrr 的建议进行测试,它可以作为解决方法。
      【解决方案6】:

      在修复之前,我会使用这个免费的应用程序“Set Orientation”。使用 adb install 将 apk 安装到模拟器中。

      【讨论】:

      • 你是怎么拿到apk的?
      • @IgorGanapolsky,市场上没有?
      • 是的,但是你如何在模拟器上安装它?
      • 老兄,Google Play 不提供独立的 APK。
      • 在有根设备上从市场安装应用程序,然后使用:adb pull /data/app/com.googlecode.eyesfree.setorientation-1.apk 拉取 apk 文件。使用adb install安装到模拟器
      【解决方案7】:

      作为一种解决方法,我克隆了设备,交换了克隆中的宽度/高度和未选中的肖像。然后基于克隆的横向版本启动了我的 avd。也许这对你有用?

      【讨论】:

      • 如果你想做一个 onConfigurationChange 测试来测试 onSaveInstanceState 和 onrRestoreInstanceState 方法是如何工作的?当然,使用您的解决方案,您可以测试为同一片段或活动的不同方向编写的布局..
      【解决方案8】:

      我发现这个错误取决于我为虚拟机选择的设备类型。如果我将设备类型设置为“Nexus 7”,它将不允许旋转。但是,如果我将设备类型设置为通用 7" 平板电脑,并使用所有相同的选项,旋转就可以正常工作。

      【讨论】:

      • 所以,它仍然是一个错误。
      • 我没有发现任何区别。对我来说,使用 7" 平板设备的唯一不同是它默认为横向。否则,它与手机设备具有相同的行为:窗口会物理旋转,但布局不会调整。
      • 这个解决方案对我有用,谢谢!
      • 这终于对我有用了。花了我几个小时谷歌搜索。我尝试了 4.4.2、4.3.1、4.1.2 系统映像,但无济于事。在 ubuntu 14.04 上使用想法。
      【解决方案9】:

      这些似乎是 Android 4.4 模拟器中的错误。您可能希望跟踪我提交的有关the orientation change bugthe overflow affordance bug 的问题。

      感谢您指出这些!

      【讨论】:

      • 新的运行时编译器 ART 也破坏了模拟器:xda-developers.com/android/new-runtime-compiler-in-android-4-4
      • @mreichelt:嗯,这是你必须在模拟器中专门启用的东西,它不是当今普通 Android 应用程序开发的一部分,方向变化和溢出的方式是。话虽如此,感谢您指出这一点,如果没有其他原因,除了帮助解释我在各种推文中提到的艺术是谁。 :-)
      • 看来SDK里面有很多bug。例如,您可以看到:stackoverflow.com/questions/19725265/…。此外,如果我在我的应用程序中打开地图(Google map api v2),它会因分段错误而崩溃。但我的应用程序在我的设备和 4.3 模拟器上完美运行。谷歌你在做什么?
      • 是的,在前五分钟发现(因为这是在我的 PC 上加载 4.4.KitKat 模拟器所需的时间)屏幕方向使用 Ctrl+F11并且模拟器的菜单按钮不起作用。 Google 在测试期间错过了这些错误,真可惜……
      • L Developer Preview 模拟器也会发生这种情况。
      猜你喜欢
      • 1970-01-01
      • 2019-05-01
      • 2023-03-24
      • 2013-01-22
      • 2013-12-02
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多