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

Android Studio运行报UnsatisfiedLinkError找不到libsiftrpixels.so如何解决

libsiftrpixels.so 加载崩溃问题排查方案

该问题为Android运行时加载native库失败,报错信息如下:

dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/-1WyAeKK9WZsqHBHByIMadA==/base.apk", zip file "/data/app/-1WyAeKK9WZsqHBHByIMadA==/split_config.arm64_v8a.apk", zip file "/data/app/-1WyAeKK9WZsqHBHByIMadA==/split_config.en.apk", zip file "/data/app/-1WyAeKK9WZsqHBHByIMadA==/split_config.xhdpi.apk"],nativeLibraryDirectories=[/data/app//lib/arm64, /data/app//base.apk!/lib/arm64-v8a, /data/app//split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app//split_config.en.apk!/lib/arm64-v8a, /data/app//split_config.xhdpi.apk!/lib/arm64-v8a, /system/lib64]]] couldn't find "libsiftrpixels.so"

报错截图:
image 1
image 2

排查解决步骤

  • 步骤1:确认so文件存在性
    检查项目src/main/jniLibs目录下,是否有对应设备架构的libsiftrpixels.so文件,常见架构包括armeabi-v7a、arm64-v8a、x86、x86_64。如果该so是通过第三方aar引入,可解压aar确认内部是否包含对应架构的so。
  • 步骤2:检查ABI过滤配置
    打开模块级build.gradle文件,查看defaultConfig.ndk.abiFilters配置,确保配置保留的架构列表里,对应架构的so文件是存在的。比如你只配置了arm64-v8a,则必须在jniLibs/arm64-v8a目录下存放对应so文件;如果未配置abiFilters,打包时会纳入所有存在的架构so,只要运行设备对应架构的so缺失就会报错。
  • 步骤3:校验so加载逻辑
    确认代码中加载so的语句写法正确,应为System.loadLibrary("siftrpixels"),不需要手动加前缀lib和后缀.so,系统会自动补全;同时确认so加载时机不要早于应用安装完成、so解压完毕的节点。
  • 步骤4:验证APK打包结果
    打包生成APK后,通过Android Studio顶部菜单栏Build -> Analyze APK打开生成的APK,查看lib目录下对应架构文件夹中是否存在libsiftrpixels.so,如果APK内缺失对应so,回查前3步的配置问题。
  • 步骤5:特殊场景适配
    如果开启了ABI拆分(split)功能,确认对应架构的拆分APK中包含so文件;如果开启了资源压缩或混淆,可在proguard规则中添加对应NDK类的keep规则,同时在build.gradle的packagingOptions中添加jniLibs.keep += "**/libsiftrpixels.so"避免so被误移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 19:27:03