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

Android APK安装后.so存在却触发UnsatisfiedLinkError问题求助

关于Android JNI开发中.so文件加载失败的问题

问题背景

已为此问题困扰许久,虽发现不少类似案例,但解决方案均不适用,可能我对APK安装后.so文件的存放位置存在误解。

开发环境

  • Android平台
  • 使用build.gradle与CMakeLists.txt进行JNI开发以运行C++代码,遵循官方教程及其他网站资料

问题现象

  • C++代码可正常返回数值,生成的APK解压后lib目录下有对应各架构(含目标ARM架构)的.so文件
  • 安装APK后运行C++代码时,触发UnsatisfiedLinkError,提示在/system/lib和/vendor/lib的nativeDirs中未找到.so文件
  • 将APK解压出的.so文件手动推送到上述目录,程序即可正常运行,说明代码编译无误
  • 我了解到.so文件可能不再从APK提取,但系统中完全找不到该文件,而APK内确实存在

相关代码

CMakeLists.txt

cmake_minimum_required(VERSION 3.4.1)

add_library(native SHARED
        nativeCode.cpp)

target_link_libraries(native
        android
        log)

Java加载库代码

static {
    System.loadLibrary("native");
}

疑问

  1. APK安装后,.so文件在设备中的正确存放位置是哪里?
  2. 是否需要在CMakeLists.txt中指定.so文件的存放位置?
  3. 若需指定应用查找.so文件的路径,应设置在何处?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:20:41