添加aar依赖库遇到的问题记录

一、将module打包成aar库
1.1、module的
build.gradle文件
plugins {
  //id 'com.android.application'//变更为下面代码
   id 'com.android.library'
}
android {
  ......
defaultConfig {
//applicationId "********"//删除该代码
        ......
    }
  ......
}
//下面代码是和android{......}同级。
def _BASENAME = "TestJar";
def _VERSION = "_V1.0";
def _DestinationPath = "build"; //生成jar包的位置
def zipFile = file('build/intermediates/intermediate-jars/release/classes.jar'); //待打包文件位置
task deleteBuild(type:Delete){
delete _DestinationPath + _BASENAME + _VERSION + ".jar"
}
task makeJar(type:Jar){
from zipTree(zipFile)
from fileTree(dir:'src/main',includes:['assets/**']) //将assets目录打入jar包
baseName = _BASENAME + _VERSION
destinationDir = file(_DestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
1.2、在Android studio进行打包如下图,最终生成的aar文件位于项目路径\app\build\outputs\aar下,选用release版本就很好。



二、引用aar依赖库

1、添加依赖时报错:More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
  在module的build.gradle中添加
  android{
    ........
    packagingOptions {//加上这些代码  More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    pickFirst 'lib/armeabi-v8a/libc++_shared.so'
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
    pickFirst 'lib/x86/libc++_shared.so'
    pickFirst 'lib/x86_64/libc++_shared.so'
    }
  }
2、aar中如果有布局文件,如果aar布局文件的名跟主module中的布局文件重名,就会导致aar中引用该布局文件异常。
3、aar包中只有资源文件和class文件,所以aar中需要的第三方依赖,需要在主module中添加一遍。
4、AndroidManifest.xml合并出问题时android:tools="android:icon"应该添加在设置android:icon属性的地方,不管是application、activity、meta-data或者其它。

















posted @   Prime_T  阅读(727)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示