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

  • 相关阅读:
    noi.ac 集合
    NOI2019 SX 模拟赛 no.5
    带花树草解
    UR#13 SRAND
    【51nod1847】 奇怪的数学题
    ●POJ 3237 Tree
    ●BZOJ 2049 [Sdoi2008]Cave洞穴勘测
    ●BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
    ●POJ 2983 Is the Information Reliable?
    ●POJ 3378 Crazy Thairs
  • 原文地址:https://www.cnblogs.com/lyxin/p/10052318.html
Copyright © 2011-2022 走看看