安装apk时INSTALL_FAILED_NO_MATCHING_ABIS

Pet*_*hao 446 android

我尝试将我的应用安装到Android L预览版英特尔凌动虚拟设备中,但失败了,错误:

INSTALL_FAILED_NO_MATCHING_ABIS

这是什么意思?

小智 599

INSTALL_FAILED_NO_MATCHING_ABIS是当您尝试安装具有本机库的应用程序时,它没有适用于您的cpu体系结构的本机库.例如,如果您为armv7编译了一个应用程序,并且正在尝试将其安装在使用英特尔架构的模拟器上,则它将无法正常工作.

  • 我在 Windows 机器上将 Android Studio 模拟器用于 Nexus 5x 时遇到了这个问题。出于速度原因[快 10 倍],默认情况下模拟手机就好像它使用 Intel x86 架构一样 [Nexus 5x 的 Snapdragon 808 实际上基于 ARM:http://www.tomshardware.com/reviews/lg-g4, 4353-2.html]。我修复了进入 AVD 管理器的错误,选择了出现错误的模拟设备,然后单击“编辑”按钮,在其中设置了 ARM (armeabi-v7a) 架构。在此更改加上模拟器重新启动后,安装没有问题 (4认同)
  • 如果您使用的是ARM翻译,即使有Genymotion这个问题,是因为你创造一个像谷歌Nexus 10的x86的虚拟设备选择的ARM虚拟设备来代替,如自定义平板电脑之一. (3认同)

Ash*_*and 147

INSTALL_FAILED_NO_MATCHING_ABIS是当您尝试安装具有本机库的应用程序时,它没有适用于您的cpu体系结构的本机库.例如,如果您为armv7编译了一个应用程序,并且正在尝试将其安装在使用英特尔架构的模拟器上,则它将无法正常工作.

在Visual Studio 2015上使用Xamarin. 通过以下方式修复此问题:

  1. 打开你的xamarin .sln
  2. 右键单击你的android项目
  3. 单击属性
  4. 单击Android选项
  5. 点击"高级"标签
  6. 在"支持的体系结构"下,选中以下内容:

    1. armeabi-V7A
    2. 86
  7. 保存

  8. F5(构建)

编辑:此解决方案也被报告为在Visual Studio 2017上工作.

编辑2:此解决方案也被报告为在Visual Studio 2017 for Mac上工作.

  • 对于Xamarin.Android项目,该解决方案也适用于Visual Studio 2017. (6认同)
  • 在Xamarin看来,每一个新的日子都会出现一个新的,意想不到的障碍,阻止我运行我的应用程序(昨天工作).由于我的csproj文件在dropbox上,我可以检查版本历史记录,而且这个属性昨天不在文件中,它完全没有了.今天,我不得不添加x86选项以使app运行.为什么xamarin或android突然使用不同的默认值?这太令人沮丧了!无论如何,感谢像你这样的人,我可以克服并继续工作.非常感谢,为你+1! (4认同)
  • 希望我能不止一次升级...在VS 2017 for Mac上测试和工作. (2认同)

Dri*_*uar 85

我发布了另一个帖子的答案,因为它对我来说效果很好,诀窍是增加对这两种架构的支持:

发布这个因为我找不到直接的答案,不得不看几个不同的帖子来得到我想做的事情......

我能够使用x86 Accelerated(HAXM)模拟器,只需将其添加到我的Module的build.gradle脚本内部的android {}块:

splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a'
            universalApk true
        }
    }
Run Code Online (Sandbox Code Playgroud)

运行(build)...现在输出文件夹中会有一个(yourapp)-x86-debug.apk.我确定有一种方法可以在Run上自动安装,但我只是启动我首选的HAXM模拟器并使用命令行:

adb install (yourapp)-x86-debug.apk
Run Code Online (Sandbox Code Playgroud)

  • 失败[INSTALL_FAILED_NO_MATCHING_ABIS] (2认同)

R00*_*0We 61

如果您使用Genymotion,则需要安装ARM Translation和GApps

  • 更新2017年5月28日:不再支持本指南,可能不起作用.请不要使用它或寻求支持.来自xda开发人员 (4认同)
  • 您可以按照[此链接](https://pentester.land/tips-n-tricks/2018/10/19/installing-arm-android-apps-on-genymotion-devices.html)安装ARM翻译 (2认同)

Igo*_*sky 35

这确实是一个奇怪的错误,可能是由多索引您的应用程序引起的.要解决此问题,请在应用程序的build.gradle文件中使用以下块:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]
Run Code Online (Sandbox Code Playgroud)


Jon*_*rry 11

我知道这里有很多答案,但是TL; DR版本就是这个(如果你使用的是Xamarin Studio):

  1. 右键单击解决方案树中的Android项目
  2. 选择 Options
  3. Android Build
  4. 转到Advanced标签
  5. 检查您在模拟器中使用的体系结构(可能x86/ armeabi-v7a/ armeabi)
  6. 制作一个kickass app :)


小智 11

这个解决方案对我有用.试试这个,在app的build.gradle文件中添加以下行

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}
Run Code Online (Sandbox Code Playgroud)


Sab*_*aba 9

在Android 8上:

apache.commons.io:2.4

它提供INSTALL_FAILED_NO_MATCHING_ABIS,尝试将其更改为2.5或2.6,它将起作用或将其注释掉。

  • 非常感谢,您救了我的一天。我不知道为什么:实现“ org.apache.directory.studio:org.apache.commons.io:2.4” (5认同)

mue*_*flo 7

@ enl8enmentnow的评论应该是使用genymotion解决问题的答案:

如果你在Genymotion上遇到这个问题,即使使用ARM翻译器也是因为你正在创建像谷歌Nexus 10这样的x86虚拟设备.选择一个ARM虚拟设备,就像其中一个自定义平板电脑一样.


LeR*_*Roy 6

Visual Studio mac - 您可以在此处更改支持:

在此输入图像描述


小智 6

这对我有用... Android> Gradle脚本> build.gradle(Module:app)添加在android *内部

android {
  //   compileSdkVersion 27
     defaultConfig {
        //
     }
     buildTypes {
        //
     }
    // buildToolsVersion '27.0.3'

    splits {
           abi {
                 enable true
                 reset()
                 include 'x86', 'armeabi-v7a'
                 universalApk true
               }
    }
 }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


edi*_*rsh 5

我使用bitcoinJ库(org.bitcoinj:bitcoinj-core:0.14.7)添加到build.gradle(在模块应用中)android范围内的打包选项时遇到了这个问题。它帮助了我。

android {
...
    packagingOptions {
        exclude 'lib/x86_64/darwin/libscrypt.dylib'
        exclude 'lib/x86_64/freebsd/libscrypt.so'
        exclude 'lib/x86_64/linux/libscrypt.so'
    }
}
Run Code Online (Sandbox Code Playgroud)