You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

最新Android Studio构建AAR时本地aar依赖不支持报错求助

解决构建AAR时本地.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).

问题核心

当模块目标是构建AAR产物时,最新版AGP会拦截本地直接依赖的.aar文件——这类依赖不会被打包进最终生成的AAR,导致其他项目引用该AAR时缺失必要的类和资源。Debug模式通常构建APK,因此不会触发该检查,而Release构建AAR时则会报错。

可行解决方案

方案1:将本地.aar转为Library模块引入

  1. 在项目根目录新建Android Library类型的模块
  2. 删除新模块的src目录,仅保留build.gradle.kts
  3. 将本地.aar复制到新模块的libs目录
  4. 修改新模块的build.gradle.kts配置:
plugins {
    id("com.android.library")
}

android {
    namespace "com.your.package.customlib"
    compileSdk = 34 // 替换为项目实际compileSdk版本
    defaultConfig {
        minSdk = 21 // 替换为项目实际minSdk版本
    }
    sourceSets {
        getByName("main") {
            jniLibs.srcDirs("libs")
        }
    }
}

dependencies {
    implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
}
  1. 在原模块的build.gradle.kts中,替换原本地依赖为新模块依赖:
implementation(project(":customlib")) // 替换为你的新模块名称

方案2:将本地.aar发布到本地Maven仓库

  1. 在项目根目录的build.gradle.kts中添加Maven发布插件:
plugins {
    id("maven-publish") apply false
}
  1. 在存放本地.aar的模块(或新建空模块)的build.gradle.kts中配置发布逻辑:
plugins {
    id("com.android.library")
    id("maven-publish")
}

android {
    namespace "com.your.package.aarpub"
    compileSdk = 34
    defaultConfig {
        minSdk = 21
    }
}

dependencies {
    implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
}

afterEvaluate {
    publishing {
        publications {
            create<MavenPublication>("release") {
                from(components["release"])
                groupId = "com.your.package"
                artifactId = "target-aar"
                version = "1.0.0"
            }
        }
        repositories {
            maven {
                url = uri("${rootProject.buildDir}/local-repo")
            }
        }
    }
}
  1. 执行Gradle任务publishReleasePublicationToMavenRepository,将.aar发布到本地仓库
  2. 在原模块的build.gradle.kts中添加本地仓库并引用依赖:
repositories {
    maven {
        url = uri("${rootProject.buildDir}/local-repo")
    }
}

dependencies {
    implementation("com.your.package:target-aar:1.0.0")
}

方案3:确认模块类型(仅适用于无需构建AAR的场景)

如果你的模块实际是应用模块(仅需构建APK),检查build.gradle.kts的插件配置,确保是应用插件而非库插件:

plugins {
    id("com.android.application")
}

内容的提问来源于stack exchange,提问作者Akash Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 17:53:35