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

AAR格式SDK集成问题:.so文件在APK中存在但安装后未到lib/arm64

解决AAR中.so文件安装后未复制到lib/arm64目录的问题

可能的原因及修复方案

1. 检查APP的ABI过滤配置

你的项目可能限制了支持的ABI架构,导致arm64-v8a的.so被过滤掉。在模块级build.gradle.kts中查看是否存在ndk.abiFilters配置,若只指定了armeabi-v7a而未包含arm64-v8a,就会出现这个问题。

修复示例:

android {
    defaultConfig {
        ndk {
            abiFilters += listOf("armeabi-v7a", "arm64-v8a")
        }
    }
}

2. 验证AAR文件的完整性

将你使用的AAR文件后缀改为.zip并解压,检查内部是否存在jni/arm64-v8a目录及对应的.so文件。若该目录缺失,说明你拷贝的AAR文件和官方示例使用的不一致,重新从官方示例项目中拷贝正确的AAR到自己项目的libs目录。

3. 检查ABI拆分打包配置

如果项目开启了ABI拆分打包,可能生成了多个对应不同架构的APK,你安装的恰好是不包含arm64-v8a的版本。查看模块级build.gradle.kts中的splits配置:

android {
    splits {
        abi {
            enable = true
            reset()
            include("armeabi-v7a", "arm64-v8a")
            universalApk = true // 生成包含所有ABI的通用APK,方便测试验证
        }
    }
}

若开启了拆分,确保安装的是对应arm64-v8a的APK,或者开启universalApk生成通用包来测试。

4. 清理并重建项目

缓存异常也可能导致该问题,执行以下操作:

  • 点击Android Studio顶部菜单栏的Build -> Clean Project
  • 接着执行Build -> Rebuild Project
  • 卸载设备/模拟器上已安装的旧版本APP,重新安装新构建的APK

5. 调整依赖引入方式

虽然官方使用了api fileTree(dir: 'libs', include: ['*.aar']),但也可以尝试直接指定单个AAR文件引入,避免fileTree匹配异常:

dependencies {
    api(files("libs/your-sdk-filename.aar"))
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:15:04