38

我已经看到了一些关于此的问题,但没有一个真正的答案或细节。这是我的情况:

我有一个使用Google Maps API v2的应用程序,它工作得很好。最近我发现我无法将它安装在这个不基于 ARM 的设备上。

为了确定问题,我正在使用 SDK 提供的 Google 地图示例 (\sdk\extras\google\google_play_services\samples)

这在安装时给了我相同的错误消息:

Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]

我仅在使用 Intellij (12.1.1) 的真实设备上收到此消息

在真实设备上使用 Eclipse 和在配置有 CPU 的模拟器上使用 Intellij 都可以正常工作:Intel Atom (x86)

任何帮助将不胜感激!

更新

正如预期的那样,Android Studio 也会发生同样的事情

4

3 回答 3

103

默认情况下,IntelliJ 假定libsAndroid 模块根目录中的文件夹包含本机库,即使它只包含 jars。因此,它将 APK 打包,使其看起来像是本机库。我只是有一个类似的问题,我的应用程序没有本机代码并且可以在默认模拟器上运行,但是在 Genymotion 模拟器上安装时收到 ABI 警告。要解决此问题,请告诉 IntelliJ(或 Android Studio)您的库不是本机代码:

  1. 打开File -> Project Structure.
  2. 单击Modules窗口左侧。
  3. 对于每个 Android 模块,展开下拉列表并选择Android子项。
  4. Structure右侧的选项卡中,删除Native libs directory字段的内容(您可以将其留空)。
  5. 为项目中的每个 Android 模块完成此操作并应用更改后,您可能需要通过Build -> Rebuild Project从 IntelliJ 的全局菜单中进行选择来重建项目以进行更改。
于 2013-11-25T05:55:32.447 回答
12

最新的 Genymotion 不支持 ARM 二进制文件。如果您有为 ARM 编译的本机代码,则可以使用 Genymotion-ARM-Translation。只需将此文件拖放到 Genymotion 主文件夹并重新启动。

参考。 http://forum.xda-developers.com/showthread.php?t=2528952

于 2014-07-12T10:18:43.033 回答
3

在 android studio 中,修复此问题:

1 下载 Genymotion-ARM-Translation_v1.1.zip

下载地址:

https://forum.xda-developers.com/attachment.php?s=9f1870536cb530a1346794b6ef629e90&attachmentid=2680937&d=1397258016

2 将 zip 文件拖到正在运行的虚拟设备中,然后单击确定

3 重启Genymotion虚拟设备

于 2017-07-04T10:04:11.523 回答