Android 安装apk报错 :INSTALL_FAILED_NO_MATCHING_ABIS

开发环境:
Android studio 3.5.2
jdk 11
sdk 28
使用BTC Android原生库 org.bitcoinj:bitcoinj-core:0.14.7 ,编译不报错,安装apk的时候报错
错误详情

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_NO_MATCHING_ABIS
Installation failed due to: 'null'
Retry

原因:使用的了 Native lib 或者 JNI 之类的反正就是跟硬件有关的乱七八糟的包.
也可以说:主要原因是您正在尝试安装一个具有本机库的应用程序,而该应用程序的CPU体系结构没有本机库。
造成问题的本机库是scrypt.jar,所以排除了它就行了
解决方案:

implementation ('org.bitcoinj:bitcoinj-core:0.14.7'){
        exclude module: 'scrypt'
    }

完美运行

其他解决方案,找了一大堆,但是仅供参考(因为我这样写了没一点用)

// 没有以下代码模拟器安装apk时 INSTALL_FAILED_NO_MATCHING_ABIS
// 解决 native libraries 不支持cpu的体系结构。同时编译X86及ARM类型,允许模拟器调试(打包时记得注释并rebuild)
在 app 的 moudle 的 build.gradle 文件中, 粘贴一下代码, 注意是添加在 android {} 大括号中.

    splits {
        // Configures multiple APKs based on ABI.
        abi {
            // Enables building multiple APKs per ABI.
            enable true
            reset()
            include "x86","armeabi-v7a", 'x86_64'
            universalApk true
        }
    }

这样就可以直接跑模拟器了. 但这样做后在打包时会产生多个 apk, 所以发布版本时把上面的代码注释掉后 rebuild 一下工程再打包. 切记一定要 rebuild 工程!

你可能感兴趣的:(Android 安装apk报错 :INSTALL_FAILED_NO_MATCHING_ABIS)