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 Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题 .

Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题 首次使用Android Studio进行NDK开发会遇到很多问题, 我在此将自己的经验分享给大家 直...

“undefined JNI_GetCreatedJavaVM”和“File format not recognized”错误原因分析

如果编译时,报如下所示错误: ../../third-party/hadoop/lib/libhdfs.a(jni_helper.c.o): In function `getGlobalJNIEnv...

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

在研究了几天JNI后,在自己生成的so库中调用第三方so库时遇到问题,解决之后特意整理、记录一下。

Android NDK学习笔记9-JNI调用Java方法

与域一样,java中有两类方法:实例方法和静态方法。JNI提供访问两类方法的函数,例如:public class JavaClass { // 实例方法 private String instance...

JNI/NDK开发指南(开山篇)

转载请注明出处:         相信很多做过Java或Android开发的朋友经常会接触到JNI方面的技术,由其做过Android的朋友,为了应用的安全性,会将一些复杂的逻辑和算法通过本地代码(C...

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

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

Jni中执行ndk-build,编译第三方静态库(.a)和动态库(.so)的Android.mk文件写法

Jni中执行ndk-build,编译第三方静态库(.a)和动态库(.so)的Android.mk文件写法 Android Studio编译JNI接口,当需要调用第三方静态库或者动态库时,正确...

android开发ndk调用第三方so库

FROM:http://blog.csdn.net/hongbochen1223/article/details/52957421 1.0 功能概述 1.0.1 概述 在An...

NDK调用第三方so共享库

这两天被一个问题所困扰。其他公司提供的三方so如何调用的问题(只提供了so和.h头文件),他们的so不符合JNI的标准,从提供的.h头文件信息中无法调用so中方法。 《一》首先我们看下:Andro...

android开发ndk调用第三方so库

1.0 功能概述1.0.1 概述在android开发中,java调用C/C++函数库是经常遇到的,我们的android开发中使用JNI开发技术,有下面几种情况: 已经使用C/C++发了某些函数库,如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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