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

Android Studio中预编译libbanana.so加载失败问题求助

解决Android Studio预编译SO库加载失败问题

问题原因

你的ace.so在编译时被写入了本地开发环境中libbanana.so的绝对路径,而运行时APK解压后的库路径与该本地路径不匹配,导致系统无法找到依赖的libbanana.so。

解决方案

修改main/cpp/CMakeLists.txt,为导入的banana库添加IMPORTED_NO_SONAME属性,让CMake在链接时只记录库名而非本地路径:

add_library(ace SHARED ace.cpp)
add_library(banana SHARED IMPORTED)
set_target_properties(banana PROPERTIES
    IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libbanana.so
    IMPORTED_NO_SONAME ON  # 关键配置:不写入本地路径,仅记录库名
)
target_link_libraries(ace banana)

原理说明

  • IMPORTED_NO_SONAME ON会告诉CMake,该预编译库不使用SONAME(共享对象名称),链接生成的ace.so只会记录依赖库的名称(libbanana.so),而非本地开发路径。
  • 运行时,Android系统会自动将APK中lib/${ANDROID_ABI}目录加入系统库搜索路径,因此能正确找到打包进去的libbanana.so。

额外验证步骤

  • 清理并重新构建项目:执行Build > Clean Project,再Build > Rebuild Project,确保新的CMake配置生效。
  • 再次检查APK中的lib/arm64-v8a目录,确认libbanana.so和ace.so都已正确打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:48:12