zoukankan      html  css  js  c++  java
  • 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)outlibraryuildintermediatesintermediate-jars elease

    (2)outlibraryuildintermediatespackaged-classes elease

    图3.1、添加makejar操作

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

     

    4.导入到新的工程

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

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

  • 相关阅读:
    vue.js多选列表(绑定到一个数组)
    vue.js选择列表
    vue.js单选按钮
    Vue.js逆转消息
    TTL
    [转]为何需要调用“super viewDidLoad
    Tomcat 发布war包提示war包超出大小修改
    【转】 MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
    【转】 #1451
    【转】互联网网页响应速度测试标准
  • 原文地址:https://www.cnblogs.com/lyxin/p/10052318.html
Copyright © 2011-2022 走看看