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

本文介绍了如何在Android平台上通过JNI链接预编译的第三方.so库,详细步骤包括创建测试库libmaxmin.so,将其放入jni/prebuilt目录,编写相应的Android.mk文件,最终成功调用并测试.so库功能。
摘要由CSDN通过智能技术生成

为了让工程的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:

#include "max.h"
#include <stdlib.h>
#include <stdio.h>
int max(int a,int b){
	if(a >= b){
		return a;
	}else{
		return b;
	}
}

   min.h:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值