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"))
posted on 2024-01-26 10:28  清靜  阅读(50)  评论(0编辑  收藏  举报