当前位置:   article > 正文

Android平台实现JNI链接第三方.so库到armeabi文件夹中_merged_jni_libs

merged_jni_libs

为了让工程的jni更清爽,通常会将更底层的代码ndk-build成第三方.so库,在jni中引用该库。

在实现之前必须保证,第三方.so库是ndk-build编译而成,若在Linux环境下编译成.so库,在Android中是不能被引用的,会出现:

          Unable to recognise the format of the input file `./libs/armeabi/lib***.so的错误。因为此.so库是x86或其他编译结构编译的,ndk-build是armeabi架构编译。

 

尝试方法一:将用ndk-build编译得到的liba.so直接放到armeabi目录中,你会发现,在build的时候,armeabi文件会被自动清空,所以此方法行不通。

 

尝试方法二:此方法也是测试通过的,现介绍如下:

(1)、首先写一个测试库:libmaxmin.so,此库的功能是比较两个数的大小,max.c-返回较大数,min.c-返回较小数。

    max.h:

   int max(int a,int b);

      max.c:

  1. #include "max.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. int max(int a,int b){
  5. if(a >= b){
  6. return a;
  7. }else{
  8. return b;
  9. }
  10. }

   min.h:

<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/111363
推荐阅读
相关标签
  

闽ICP备14008679号