Android真机调试遇到The application could not be installed: INSTALL_FAILED_NO_MATCHING_ABIS
先说下编译环境
Android Studio 2023.1.1
gredle 8.0
sdk 32
kotlin1.8.10
最近开发地图功能的时候,需要用到真机环境的定位设备,所以需要进行真机调试。
连上手机后,点击调试总是提示INSTALL_FAILED_NO_MATCHING_ABIS这个错误。
但是我直接将编译好的release.apk拷贝到真机上又可以正常安装并运行,但是这样以来调试就非常麻烦了。
网上找了一大堆方法,都是说系统架构问题导致的,我照着弄了很多,都没管用,自认为解决问题的答案(但是没有解决)是在app gredle配置文件下defaultConfig,中添加ndk配置
defaultConfig { ... ndk { abiFilters.addAll(arrayOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) } ... }
成功通过同步,但是依然没有用,而且build文件下也没有看到生成对应的架构包。
最后我试着修改调试的编译结果为release安装到手机,居然成功了。
默认debug,选择为release
再点击绿色的Run "app",会提示key一个错误,系统会推荐使用debug.key你修复,直接下一步,就可以成功安装了,Logcat,也可以正常使用。
至于根本原因我也不清楚,但肯定是哪个地方没有配置好吧,新版的东西网上也很少,不知道怎么改。
我后来又新建了一个项目,默认情况也能真机调试了,在我将旧的项目依赖工具复制粘贴到新项目,又出现了上述问题,然后我猜测可以能某个依赖导致的
最后排除的结果是下面这依赖导致的,注释以后就没有影响了。
再后来我又去官网Apache Commons – Apache Commons下载的最新版的jar包,本地引入后成功解决该问题。
如果你遇到和我相同的问题也可以试着排除一下。
//添加org.apache.commons.codec和org.apache.commons:commons-lang依赖,主要用于数据加密解密工作 // implementation("org.apache.directory.studio:org.apache.commons.codec:1.8")
implementation(files("libs/commons-codec-1.16.0.jar"))