应使用哪个 Android 虚拟设备在 Windows 上启动 arm64-v8a APK?

问题描述 投票:0回答:4

我有一个使用

'arm64-v8a' 'armeabi-v7a'
ABI 的通用 APK 应用程序。我应该如何调整 Android 虚拟设备才能启动此应用程序?

我尝试了不同的组合,但仍然不起作用。

一些细节

环境

  • Windows 10,CPU Intel Core i5-10300H,RAM 16GB,SSD 上有大量可用空间;
  • Android Studio 北极狐 | 2020.3.1 补丁3;
  • Intel x86 模拟器加速器(HAXM 安装程序)v.7.6.5 已安装;
  • 已安装Android SDK 12.0、11.0和10.0;
  • 安装了许多不同的虚拟设备(见下图)。

应用的图像

  • 主要使用26到31的API应用不同的系统镜像;
  • 使用 AVD 管理器中不同选项卡的图像(
    Recommended
    x86
    Other Images
    );
  • 具有 ABI 的图像
    x86
    x86_64
    arm64-v8a
  • 带/不带 Google API 的图像,带/不带 Playstore 支持。

我遇到的错误

  • 某些模拟器无法启动。控制台显示:
    PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.
  • 某些模拟器上未安装 APK,会出现弹出消息:
    INSTALL_FAILED_NO_MATCHING_ABI
  • 应用程序尝试启动(显示启动画面)但突然关闭。我注意到
    logcat
    输出这样的消息(也许与应用程序相关):
    Unexpected CPU variant for X86 using defaults: x86_64

另外一些图片

android arm64 avd-manager
4个回答
26
投票

我遇到了完全相同的问题。 @WGH 的评论很到位!查看失败的代码行。

#ifdef __x86_64__
      if (sarch == "arm64" && apiLevel >=28) {
          APANIC("Avd's CPU Architecture '%s' is not supported by the QEMU2 emulator on x86_64 host.\n", avdarch);
      }
#endif

(来源:这里

我删除了基于 apiLevel 32 的 arm64 AVD,并使用了 Nougat 7.1.1 中较旧的 apiLevel 25,并且它在 QEMU、ubuntu 20.04 上加载了arm64 AVD。 (虽然很慢!!)

@mtotschnig 的评论也可能相关,但是我正在测试的应用程序无法在我尝试使用的 x86_64 AVD 的 api 版本 30 上运行。



0
投票

这个问题你解决了吗?我尝试在 Windows 11 上的 Android 模拟器上运行基于 Unity 构建的 arm64 Android 应用程序时遇到同样的问题。

我尝试了API 25、27、30、33的arm64模拟器,都无法启动并显示

Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.
x86 _64模拟器启动但无法安装APK并显示
INSTALL_FAILED_NO_MATCHING_ABI


-8
投票

好的,问题解决了。我不知道原因的根源,但我只是:

  • 删除所有虚拟设备,
  • 放弃整个Android studio,
  • 再次下载工作室的安装包,
  • 再次安装Android studio,
  • 添加已知虚拟设备:带有 Play Store 的 Nexus 5X、带有 Google Play 支持的镜像 ABI x86 API 30。

就是这样。该应用程序已上线。

© www.soinside.com 2019 - 2024. All rights reserved.