Ndk(jni)调用第三方的so库

原创 2016年06月02日 18:49:01

本文主要讲述android如何在jni中调用第三方共享so
项目源码地址:https://github.com/chenjim/thirdPartyJniSo
本博客地址:http://blog.csdn.net/csqingchen/article/details/51548839
android studio 中如何使用,参见本项目thirdPartyJniSoAS目录的studio工程

如何使用

  1. 生成第三方共享.so库
    命令行切换到thirdPartyJniSo/prebuild/目录下
    执行ndk-build,会在当前目录生成共享库文件libs/armeabi-v7a/libadd_test.so
  2. 生成HelloJni.java需要的.so库
    复制以上生成的.so到thirdPartyJniSo/jni下,命令行切换到该目录,
    执行ndk-build
  3. eclipse导入工程,导入时不需要勾选thirdPartyJniSoAS,运行…
  4. hello-jni.c中对共享库中函数add_fun的调用,可以将返回结果在其中进一步封装,返回给HelloJni.java使用。

注意问题

  1. gcc 生成的共享动态库,android无法使用,必须用ndk编译生成的.so,否则提示”.so: File format not recognized”。
  2. 项目中两处Application.mk 中APP_ABI的配置必须相同,否则提示”.so: File format not recognized”。
  3. 最终调用的libhello-jni.so也是动态共享库,为啥不直接用步骤1生成的动态库的libadd_test.so?是因为HelloJni.java不识别非ndk标准的动态库格式。

参考文章:
http://blog.csdn.net/educast/article/details/12773127/
http://tools.android.com/tech-docs/new-build-system/gradle-experimental
https://github.com/googlesamples/android-ndk/tree/master/hello-libs

版权声明:原创博文,转载请注明出处,转载请注明出处,转载请注明出处

jni调用第三方so库demo

  • 2016年08月06日 11:44
  • 2.38MB
  • 下载

调用非jni标准的第三方so(AS2.2)

经过两天的痛苦挣扎,总算跑通了,参考了许多网上的分享,但是没有一个可以跑通的,所以总结了一下,希望能帮助到大家。 看这篇之前最好看一下另一篇博客:http://blog.csdn.net/qq_2...
  • qq_22918577
  • qq_22918577
  • 2017年03月03日 13:42
  • 249

Android调用不符合JNI命名规范的so库

现在有一个纯c++风格的arm平台的动态链接库libbytebuffer.so和头文件ByteBuffer.h,接下来我将先将其封装成符合JNI命名规范的so库,这样JNI能直接调用,然后将JNI层的...
  • yiyecheer
  • yiyecheer
  • 2017年10月13日 16:03
  • 255

android开发ndk调用第三方so库

1.0 功能概述1.0.1 概述在android开发中,java调用C/C++函数库是经常遇到的,我们的android开发中使用JNI开发技术,有下面几种情况: 已经使用C/C++发了某些函数库,如果...
  • hongbochen1223
  • hongbochen1223
  • 2016年10月28日 16:26
  • 6818

android-vs Error: file format not recognized

用了数天才解决这个问题,有Debug Debug-V7 Release
  • nooning
  • nooning
  • 2014年05月14日 11:33
  • 1880

Android Studio中的Android项目调用第三方库so库

Android NDK开发中,除了可以通过自己编写C/C++代码来构建动态连接库进行调用之外,还可以通过直接调用现成的so库开进行NDK开发。接下来,我将介绍在Android Studio中如何调用第...
  • sinat_19385391
  • sinat_19385391
  • 2016年09月22日 19:06
  • 7743

Android studio jni内调用第三方so

需求 Android 通过 jni调用符合jni标准的c库,c库又需要调用第三方库 Android studio标准流程如下 apply plugin: 'com.android.applicatio...
  • wcz1128
  • wcz1128
  • 2017年01月16日 14:47
  • 2249

Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题

Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题 首次使用Android Studio进行NDK开发会遇到很多问题, 我在此将自己的经验分享给大家 直接上配...
  • chengkaizone
  • chengkaizone
  • 2016年04月06日 16:11
  • 6369

AndroidStudio通过ndk使用第三方动态链接库

使用AndroidStudio的experimental plugin或是传统的Android.mk,通过jni封装调用第三方动态链接库的方法有共通之处,也有不同之处。原理首先要了解gcc的参数,这里...
  • l465659833
  • l465659833
  • 2016年08月26日 10:31
  • 2259

android jni调用so库

今天,讲讲android studio 使用jni调用其他so库的使用。 首先说一下在网上查找资料时,对于调用第三方so库,有人说有两种方法: 1.    对于so库的API符合JNI格式...
  • bzlj2912009596
  • bzlj2912009596
  • 2017年08月01日 08:54
  • 783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ndk(jni)调用第三方的so库
举报原因:
原因补充:

(最多只允许输入30个字)