当前位置:   article > 正文

库模块引用第三方AAR文件报错_direct local .aar file dependencies are not suppor

direct local .aar file dependencies are not supported when building an 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节点下:

  1. <mirror>
  2. <id>local-maven-repo</id>
  3. <mirrorOf>*</mirrorOf>
  4. <name>local rec</name>
  5. <url>file:///D:/Maven/repository</url>
  6. <blocked>false</blocked>
  7. </mirror>

 

2 、Gradle

gradle version :8.2

gradle plugin version : 8.2.0

在库模块的build.gradle配置:

  1. apply plugin: 'maven-publish'
  2. tasks.register('sourceJar', Jar) {
  3. from android.sourceSets.main.java.srcDirs
  4. archiveClassifier = "sources"
  5. }
  6. afterEvaluate {
  7. publishing {
  8. publications {
  9. aarDeptrumSDK(MavenPublication) {
  10. groupId = 'com.troncell.facelib'
  11. artifactId = 'deptrumsdk'
  12. version = '1.0.0'
  13. // 上传 AAR 包
  14. afterEvaluate {
  15. // artifact(tasks.getByName("bundleReleaseAar"))
  16. artifact("${projectDir}/libs/deptrumSDK.aar")
  17. }
  18. // 向 Maven 仓库中上传源码
  19. artifact sourceJar
  20. }
  21. aarFaceSDK(MavenPublication) {
  22. groupId = 'com.troncell.facelib'
  23. artifactId = 'facesdk'
  24. version = '1.0.0'
  25. afterEvaluate {
  26. // 指定 AAR 文件的路径
  27. artifact("${projectDir}/libs/FaceSDK_8.1_20230216-release.aar")
  28. }
  29. }
  30. }
  31. repositories {
  32. maven {
  33. url uri("file:///D:/Maven/repository")
  34. }
  35. }
  36. }
  37. }

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

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

闽ICP备14008679号