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). The following direct local .aar file dependencies of the :CyberWinFairyallianceAnd project caused this error: C:\CyberWin\android_lib\cyber_libs_wlzc\serialport-2.1.aar
这个错误提示表明在构建 Android Archive (AAR) 文件时,不支持直接引用本地的 .aar 文件作为依赖项。因为假如这样做,这些本地 .aar 文件中的类和 Android 资源不会被打包到终极生成的 AAR 中,从而导致生成的 AAR 文件损坏。
办理方案
以下是几种可以办理这个标题的方法:
1. 将 .aar 文件发布到本地 Maven 堆栈
你可以将本地的 .aar 文件发布到本地的 Maven 堆栈,然后通过 Maven 坐标来引用它。
步骤如下:
- 在项目根目次的 build.gradle 中添加 maven-publish 插件:
收起
groovy
- buildscript {
- repositories {
- google()
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:7.0.4' // 根据你的实际版本调整
- }
- }
- allprojects {
- repositories {
- google()
- mavenCentral()
- mavenLocal() // 添加这一行以支持本地 Maven 仓库
- }
- }
复制代码
- 创建一个 publish.gradle 文件(例如在项目根目次下),用于发布 .aar 文件到本地 Maven 堆栈:
收起
groovy
- apply plugin: 'maven-publish'
- def artifactGroupId = 'com.example' // 修改为你自己的 Group ID
- def artifactArtifactId = 'serialport' // 修改为你自己的 Artifact ID
- def artifactVersion = '2.1' // 修改为你自己的版本号
- task publishLocalAar(type: PublishToMavenLocal) {
- publishing.publications {
- aar(MavenPublication) {
- groupId artifactGroupId
- artifactId artifactArtifactId
- version artifactVersion
- artifact("$rootDir/CyberWin/android_lib/cyber_libs_wlzc/serialport-2.1.aar")
- }
- }
- }
复制代码
- 在项目根目次的 build.gradle 中应用 publish.gradle:
收起
groovy
- apply from: 'publish.gradle'
复制代码
- 运行 publishLocalAar 使命来发布 .aar 文件到本地 Maven 堆栈:
收起
sh
- ./gradlew publishLocalAar
复制代码
- 在你的项目的 build.gradle 中通过 Maven 坐标引用这个 .aar 文件:
收起
groovy
- dependencies {
- implementation 'com.example:serialport:2.1' // 根据你自己的 Group ID、Artifact ID 和版本号调整
- }
复制代码 2. 将 .aar 文件解压并作为模块导入
你可以将 .aar 文件解压,然后将其作为一个模块导入到你的项目中。
步骤如下:
- 解压 .aar 文件:
- 将 serialport-2.1.aar 文件重命名为 serialport-2.1.zip。
- 解压这个 zip 文件到一个目次,例如 serialport-2.1。
- 在 Android Studio 中导入这个模块:
- 在 Android Studio 中,选择 File -> New -> Import Module。
- 选择解压后的 serialport-2.1 目次,然后按照向导完成导入。
- 在你的项目的 build.gradle 中引用这个模块:
收起
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |