赞
踩
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即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。