安卓 NDK JNI 使用(五) -- so , jar 包
来源:互联网 发布:西医综合网络课程 编辑:程序博客网 时间:2024/06/06 05:19
到最后,就是使用自己写的.so,jar包,或者使用第三方提供的接口,下面我们就来聊一聊这方面的问题
环境
- windous 10
- JDK : “1.8.0_45”
- NDK : android-ndk-r10d
- 编译器:Android studio
- cygwin64
.so
- 我们在生成.so文件之后,肯定实在本项目下进行测试了,测试完成之后,肯定又想着新建一个项目进行测试了,测试so是否可以正常,或者是否还需要依赖库等(错误的做法!)。
刚开始使用的时候,肯定已经忽略了了安卓在调用so文件时的过程,也就是说,在加载库的时候,或者链接到库里面的种种的时候,是需要解析到路径的,所以单单地只是拷贝so文件的话,是不可取的。下面有两种方法:
- 新建项目的时候,保证包名一致,这样在加载的时候,以保证可行
- 封装一个java文件当做接口,打成jar包,这样直接导包即可,参加下面。
可能遇到的问题,说明都是没有正确地调用.so,参考上面那两种方法可以解决:
1、不能load .so的库
2、提示找不到native的方法
jar 包
详细可参见 ,我这边用了其中一种方法
http://blog.sina.com.cn/s/blog_93d133c601013hdm.html
http://blog.csdn.net/beijingshi1/article/details/38681281一般来说,写接口的时候,会在另外一个包里面,我这里新建了一个叫test的包,新建一个ST.java , 用于打包测试。
- 我在目录下,找到app/build/intermediates/classes/debug/test 图示如下,我们会看到一个ST.class的文件,接下来我们就把它打包起来。
- 打开cygwin termial,进入目录下,执行命令
jar cvf test.jar .
自动生成test.jar的包了,具体命令课参见上面的两条链接,这条命令的意思就是在该目录下的所有文件,打包成名为test的jar包。
- 然后,就可以拷到想要的项目里使用即可。
使用第三方包
使用第三方的包,一般是有一个.so文件和一个jar包。我们把jar包拷到app/libs 里面,右击,选择Add as library 。在app/src/main 下,新建一个jniLibs的文件夹,把.so文件放进去。
然后就可以直接使用了,当调用时,系统会自动导包。想看接口时,可以直接点击左侧的java文件进行查看,或者直接使用第三方提供的文档。
可能会遇到的一些问题:
1、Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException
,可能是jar包的问题,你在删除jar包的时候,可能没有删除配置,也可能你在测试的时候,直接把生成的jar包拷到libs下,生成的那边未删掉。 方法:查看jar包是否还存在项目中,检查build.gradle 中的dependencies是否还引用这jar包。2、
Failure [INSTALL_FAILED_OLDER_SDK]
, 可能不是在引用的时候的错,但是遇到了就贴出来了。方法:检查手机版本,项目的SDK版本,第三方包的minSDK 。
- 安卓 NDK JNI 使用(五) -- so , jar 包
- 安卓使用JNI-NDK
- 安卓 NDK JNI 使用(四) -- Eigen(使用第三方的包)
- Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势
- Android NDK——使用Android Studio引用so库,jar包、module以及导入Eclipse项目并使用JNI的正确姿势
- 安卓 NDK JNI 使用(一) -- 环境配置(AS NDK cygwin)
- 安卓 NDK JNI 使用(二) -- 新的NDK项目(实现 a + b)
- 安卓 NDK与JNI
- 在安卓JNI/NDK中使用C++11
- 安卓开发中学习使用ndk开发jni注意事项
- Android 使用NDK-build生成so文件 C++ JNI NDK
- jni使用基础(五)之ndk常见错误
- JNI NDK SO DLL
- 安卓 NDK JNI 使用(三) -- ERROR(部分可能遇到的问题)
- 安卓JNI/NDK开发2(jni/ndk配置及 开发步骤)
- Android NDK系列(四)-AS生成jar包、导入so库并使用方法
- 安卓JNI/NDK开发1(开发前了解)
- 安卓利用NDK打包so文件
- POJ 3090 Visible Lattice Points(欧拉函数)
- vsphere中的evc介绍
- input子系统分析
- android开发之用户头像上传
- hdu5113(dfs+剪枝)
- 安卓 NDK JNI 使用(五) -- so , jar 包
- demo1 JAVA笔记
- 循环队列
- jquery网页加载进度条NProgress.js
- Linux网络编程--自定义套接字描述符判定函数issockettype
- Ubuntu下 git 服务器的搭建。
- Android从网络上下载文件
- python学习笔记-(1)
- ubuntu 环境 gedit 支持中文