You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除Android Room的SafeRoom配置后打包安装报错求助

解决移除SafeRoom后INSTALL_FAILED_NO_MATCHING_ABIS错误

这个错误的核心原因是APK中包含的native库与当前测试设备的ABI架构不兼容。结合你移除SafeRoom的操作,大概率是SafeRoom依赖的SQLCipher native库残留,或者build配置里的相关设置没清理干净,以下是具体解决步骤:

  • 排查依赖树,清理残留的SafeRoom/SQLCipher依赖
    执行项目根目录下的Gradle命令:

    ./gradlew app:dependencies
    

    (将app替换为你的目标模块名),在输出的依赖树中查找androidx.sqlite:sqlite-cipher或其他SafeRoom相关的依赖项。如果发现是间接依赖引入的,在对应的依赖声明中添加exclude规则,比如:

    implementation("xxx:xxx:1.0.0") {
        exclude group: "androidx.sqlite", module: "sqlite-cipher"
    }
    
  • 检查并调整ABI过滤配置
    打开模块的build.gradle(或build.gradle.kts),找到android.defaultConfig.ndk节点,查看abiFilters的设置。如果只指定了部分ABI(比如仅armeabi-v7a),而你的测试设备支持的是arm64-v8a或其他架构,就会触发错误。可以暂时注释掉abiFilters配置,或者添加设备支持的ABI,示例:

    defaultConfig {
        // 注释掉或调整为设备支持的ABI
        // ndk {
        //     abiFilters "armeabi-v7a"
        // }
    }
    
  • 彻底清理Build缓存
    执行以下操作确保旧的native库缓存被清除:

    1. 运行Gradle清理命令:./gradlew clean
    2. 删除项目根目录下的.gradle文件夹
    3. 删除模块目录下的build文件夹
    4. 重新执行构建和安装
  • 排查其他依赖的native库
    如果移除所有Room相关配置后仍报错,检查项目中其他第三方依赖(比如SDK、其他数据库库)是否引入了不兼容的native库。可以尝试逐个移除最近添加的依赖,重新构建测试,定位问题来源。

  • 确认测试设备的ABI架构
    在设备的「开发者选项」中找到「ABI支持列表」,查看设备支持的架构(如arm64-v8a、x86_64等),确保项目依赖的native库包含对应架构的版本。

内容的提问来源于stack exchange,提问作者user12797355

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:32:10