You need to enable JavaScript to run this app. Android Studio添加非项目目录下外部C库配置报错如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio添加非项目目录下外部C库配置报错如何解决?

配置错误原因
  • 错误将纯C库当做Android Gradle模块配置:你在settings.gradle声明的:ItemData和build.gradle添加的compile project(':ItemData'),仅适用于依赖独立的Android Library模块,而你要引入的是纯C源码库,对应路径下没有Android模块必备的build.gradle配置文件,Gradle无法识别模块构建属性,因此触发"No matching configuration"报错。
  • CMake配置逻辑错误:原target_link_libraries(ItemData)没有将编译出的ItemData动态库链接到你App的Native主库,编译后的库不会被打包进APK,且缺少头文件路径声明,后续Native代码引入头文件时会报错。
  • 路径配置可靠性低:使用相对路径跨盘符寻址容易因为Gradle工作目录变化出现寻址错误。
修正步骤
  1. 删除无效的Gradle配置

    • 删掉settings.gradle中以下两行内容:
    include ':ItemData'
    project(':ItemData').projectDir = new File(settingsDir, '../Sandbox/Software/RABBIT/UVTrolley/Ver01.6/ItemData')
    
    • 删掉app模块build.gradle中的依赖配置compile project(':ItemData')
  2. 修正CMakeLists.txt配置
    首先添加头文件搜索路径,避免后续引入头文件报错:

    # 替换为你ItemData库的头文件实际所在绝对路径,绝对路径比相对路径更稳定
    include_directories(C:/Sandbox/Software/RABBIT/UVTrolley/Ver01.6/ItemData)
    

    修正动态库编译和链接配置,假设你的App原生主库名为native-lib(默认创建项目的命名,可替换为你自己的库名):

    add_library(ItemData SHARED
      # 直接用绝对路径指定C文件位置,避免相对路径寻址错误
      C:/Sandbox/Software/RABBIT/UVTrolley/Ver01.6/ItemData/itemdata.c)
    
    # 将ItemData库链接到你的App原生主库,不要只写target_link_libraries(ItemData)
    target_link_libraries(
      native-lib
      ItemData
    )
    
  3. 同步项目后重新构建即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 00:15:03