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到新工程

  • 相关阅读:
    sql排序对比(row_number,rank,dense_rank)
    SQL分组排名+行转列
    MS SQL 权限设置脚本
    centos8容器中安装lamp及wordpress
    MacOS禁止向日葵开机启动
    docker(1)
    centos7的firewalld
    ssh免密码
    CENTOS7安装vsftp
    centos 7 安装samba配置匿名共享文件夹
  • 原文地址:https://www.cnblogs.com/lyxin/p/10052318.html
Copyright © 2011-2022 走看看