库模块引用第三方AAR文件报错

报错信息 

Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error).

GhatGPT:这个错误消息说明了在构建 AAR(Android 应用程序包)时,直接使用本地 .aar 文件作为依赖是不被支持的。这是因为在构建 AAR 的过程中,任何直接引用的本地 .aar 文件的类和 Android 资源都不会被打包到最终的 AAR 文件中,这会导致生成的 AAR 文件缺少必要的内容,从而无法正常使用。

解决思路

有远程依赖就改为使用远程依赖,实在没有就自行发布到maven

我选择发布到本地:发布到本地maven仓库为例:

1、Maven,下载安装包到本地,配置环境变量,然后配置本地仓库。Maven安装根目录->conf->settings.xml配置本地仓库

settings节点下:

<localRepository>D:/Maven/repository</localRepository>

mirrors节点下:

<mirror>
      <id>local-maven-repo</id>
      <mirrorOf>*</mirrorOf>
      <name>local rec</name>
      <url>file:///D:/Maven/repository</url>
      <blocked>false</blocked>
</mirror>

 

2 、Gradle

gradle version :8.2

gradle plugin version : 8.2.0

在库模块的build.gradle配置:

apply plugin: 'maven-publish'
tasks.register('sourceJar', Jar) {
    from android.sourceSets.main.java.srcDirs
    archiveClassifier = "sources"
}
afterEvaluate {
    publishing {
        publications {
            aarDeptrumSDK(MavenPublication) {
                groupId = 'com.troncell.facelib'
                artifactId = 'deptrumsdk'
                version = '1.0.0'
                // 上传 AAR 包
                afterEvaluate {
//                    artifact(tasks.getByName("bundleReleaseAar"))
                    artifact("${projectDir}/libs/deptrumSDK.aar")
                }
                // 向 Maven 仓库中上传源码
                artifact sourceJar
            }
            aarFaceSDK(MavenPublication) {
                groupId = 'com.troncell.facelib'
                artifactId = 'facesdk'
                version = '1.0.0'
                afterEvaluate {
                    // 指定 AAR 文件的路径
                    artifact("${projectDir}/libs/FaceSDK_8.1_20230216-release.aar")
                }
            }
        }
        repositories {
            maven {
                url uri("file:///D:/Maven/repository")
            }
        }
    }
}

然后同步项目,同步完成之后,点击侧栏gradle。在打开的窗口找到对应库模块并点击展开,对应的Tasks下有publishing,点击展开,然后点击publish即可 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值