Android studio 引用动态库并生成动态库

1、在cmakelist中加入 要引用的动态库

add_library( libflag      //1、 引用的so 动态库标志,可以随意填一个,但4与1保持一致
        SHARED            //2、 表明这是一个动态库,STATIC则为静态库
        IMPORTED)         //3、 表明这动态库是从外部引入的
set_target_properties( libflag  //4、引用的so 动态库标志,可以随意填一个,但4与1保持一致
        PROPERTIES IMPORTED_LOCATION  //5、指明6 的属性为文件路径
        ${CMAKE_CURRENT_SOURCE_DIR}/../j2534SO/libname.so)  //6、被引用的动态库的路径和名称

2、如果在编译的时候报: undefined reference to 这样的错误,而错误信息中指明的接口所应用的动态库你确信你已经包含进来了,那还有一种可能的原因:ANDROID_ALLOW_UNDEFINED_SYMBOLS=TRUE 这个宏没有加上,在build.gradle中加入这个宏即可

externalNativeBuild {
    cmake {
        cFlags "-DAPP_EASYKEYAD=1"
        arguments  "-DANDROID_ALLOW_UNDEFINED_SYMBOLS=TRUE"
    }
}

加上这个宏,代码可以顺利编译通过,因为这个变量默认值是false,对于所有未定义的引用都会报“undefined symbol”或"undefined reference to"错误,便于发现可能的bug。如果对于引用的库有自信,设置成'true‘时不会检查引用,代码可以快速通过编译。但是如果代码有问题,编译出来的动态库可能会报运行时错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值