当前位置:   article > 正文

Android studio 打包包含aar包 的module的解决方法_android studio 打包aar包含aar

android studio 打包aar包含aar

Android studio 打包包含aar包 的module

前言

最近Android 打包项目module为 aar时,因为module引用了别的aar(A-aar),且A-aar 内包含SO,用原来方式打包module生成aar(B-aar)后,别的项目项目引用B-aar时,运行后发现没有A-aar 的相关内容,搜索后才知道module aar时,不会将其引用的aar打包进去。

一、解决方法

修改module的 build.gradle 增加如下:

二、使用步骤

1.引入库

修改module的 build.gradle 增加如下

apply plugin: 'com.kezong.fat-aar'
  • 1

module引用aar时使用embed
embed:合并AAR,将引入API对应的AAR工程合并到该module工程,打包成为一个全新的AAR; 依赖不具传导性,引入的API仅module可见。

embed (name:'aar名称',ext:'aar')
  • 1
task copyAar(type: Copy) {
    // 设置要复制的文件
    from('libs') // 假设你的aar文件放在libs目录
    into('build/outputs/aar') // 输出目录,可以自定义
    include('**/*.aar')
}

// 执行打包任务前复制aar文件
tasks.whenTaskAdded { task ->
    if (task.name == 'bundle') {
        task.dependsOn copyAar
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.SO 重复引入

如果再运行本app时遇到
More than one file was found with OS independent path ‘lib/arm64-v8/xxxxx.so’:
在这里插入图片描述
解决此类问题,在app 的build.gradle android里增加下面内容,选择使用的so

packagingOptions {     
        pickFirst 'lib/arm64-v8a/XXXXXX.so'
        pickFirst 'lib/armeabi-v7a/XXXXXX.so'
    }
  • 1
  • 2
  • 3
  • 4

总结

按以上步骤成功在别的项目成功引用了aar,且so都包含。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/905453
推荐阅读
相关标签
  

闽ICP备14008679号