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

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

android-vs Error: file format not recognized

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

使用JNI 调用第三方c++动态库

昨天晚上到今天一直在折腾这个第三方库文件,唉,要哭了,一直就是各种问题。现在详细说说怎么做,踩过哪些坑。...

android ndk 怎样调用第三方的so库文件

问题描述:Android如何调用第三方SO库;已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明;已了解解决方案:1.将SO文件直接放到libs/armeabi下,然后...

AndroidStudio2.2.3 JNI与NDK开发之一:生成可调用.so库

AndroidStudio2.2.3 JNI与NDK开发之一:生成可调用.so库 网友前辈总结的一种方法,直接用Android Studio中ndk与CMake实现,见博主文章AndroidStudi...

Android平台下JNI调用第三方so库

首先说一下在网上查找资料时,对于调用第三方so库,有人说有两种方法: 1.    对于so库的API符合JNI格式(即使用javah指令生成的头文件中那种格式),可以在Java代码中声明它对应的...

Android NDK编译本地文件以及引用第三方so文件

引用第三方的so文件很简单,在工程目录的libs文件夹下新建文件夹armeabi,以及armeabi-v7a,然后将要引用的so文件分别复制到这两个 文件夹下就行了。但是有时候我们会使用第三方开...

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

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

android开发ndk调用第三方so库

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

Android studio jni内调用第三方so

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

jni 调用共享SO库

JNI 调用SO 破解SO库
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ndk(jni)调用第三方的so库
举报原因:
原因补充:

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