美文网首页
将aar打包进so?

将aar打包进so?

作者: 忧郁的小码仔 | 来源:发表于2022-03-24 10:56 被阅读0次

    前段时间有个项目,需要用c++开发我们自己的sdk,另外,我们的sdk又依赖于另一个aar包,当时想当然的以为生成so的时候会一起把aar打包进去,结果发现调用so的时候,aar里面的类根本找不到,说明aar 并没有一起打包进so

    后来想了下,既然将aar打包进so没法实现,不如把我自己的so库,还有第三方的aar再重新打一次,最终打成aar包,这样就方便多了。步骤如下:

    先在原来测试我们自己so库的测试工程上新建一个moudle:

    1. 在原project右键->new->moudle->Andriod Library即可
    2. 将aar改成zip后解压,大体目录如下:


      截屏2022-03-24 上午10.48.52.png

    下面将上图中的classes.jar还有lib下面的jar包拷贝到新建的module下的libs目录,并将剩余的jni,AndroidManifest.xml等文件分别拷贝合并到对应的目录内

    1. 在主工程的build.gradle(app)里面导入我们上面的module:
    implementation project(path: ':mymodule')
    
    1. 好了,再用原来测试so库的app测试下,原来aar中的类可以找到了,集成完成

    5.下面就是要把我们aar拆出来的零件以及我们自己的so库重新打包成aar:


    截屏2022-03-24 上午10.53.15.png

    工程右侧,找到Gradle,点开后找到我们上面新建的module,点击Tasks->build->assemble
    等构建完成后,aar就生成了,生成目录在我们的moudle目录下面的:
    build->outputs->aar下面

    1. aar打包好之后,放到测试工程的 libs 目录下,并在build.gradle中引用即可:
    apply plugin: 'com.android.application'
    
    android {
    ........
    
        defaultConfig {
    .........
        }
    
        buildTypes {
    ....
        }
    
        repositories {
            flatDir {
                dirs 'libs'
            }
        }
    }
    
    dependencies {
       .......
        implementation(name: 'nfcverifylib', ext: 'aar')
    }
    
    

    okay

    相关文章

      网友评论

          本文标题:将aar打包进so?

          本文链接:https://www.haomeiwen.com/subject/ynykjrtx.html