so文件(2)给外部工程引用

调用第三方so文件,无需包名与so文件中的呼应java方法相同,就是创建一个jar,使它的包名和so中的包名相同。

 

1.新建一个测试工程,创建好c++代码,cmake照旧写入。

图1.1、测试工程目录

 

2.建立library

新建一个Android library的module,建立两个测试类,在其中一个测试类中导入lib,新建native方法,回到native-lib.cpp中添加方法。

图2.1、library目录

图2.2、新建类,声明native

图2.3、声明方法的时候,包名是lib的包名

 

3.生成so文件

在库的gradle中添加以下,与Android同级,(生成release必须)。打开gradle页面,选择library模块-tasks-other-makejar即可生成release版。

Jar的生成位置有两个,一个目录带有res.jar,生成的classes.jar无区别

(1)\outlibrary\build\intermediates\intermediate-jars\release

(2)\outlibrary\build\intermediates\packaged-classes\release

图3.1、添加makejar操作

图3.2、找到other下的makejar,双击运行即可生成。

 

4.导入到新的工程

   将classes.jar导入新工程的lib中,新建文件夹/src/main/jniLibs,将so文件放入其中,此时调用classes.jar中封装的方法,即可不需要包名与so文件中的方法相同。

图4.1、导入so和jar到新工程

posted @ 2018-12-02 10:15  Lyxin_c  阅读(425)  评论(0编辑  收藏  举报