无法解析从本地源模块构建的本地AAR

Zak*_*rdi 6 android gradle android-gradle-plugin

我有一个库模块,我想将其作为AAR依赖包含到示例应用程序中:

:my-library
:sample-app
Run Code Online (Sandbox Code Playgroud)

所以sample/build.gradle,我做了以下事情:

repositories {
    flatDir {
        dirs "../my-library/build/outputs/aar" 
    }
}

// I have different flavors that specify whether to use the source or binary (aar) dependency

flavorDimensions "SOURCE_OR_BINARY"
    productFlavors {
        source { }
        binary { }
}

dependencies {
    sourceImplementation project(':my-library')
    binaryImplementation(name: 'my-library-release', ext: 'aar') // <-- this line fails with error
}

tasks.whenTaskAdded { task ->
    def taskName = task.name.toLowerCase()
    if (taskName.toLowerCase().contains("binary")) {
        // Prepare libs as binaries
        task.dependsOn ('my-library:assembleRelease')
    }
}
Run Code Online (Sandbox Code Playgroud)

./gradlew在命令行上运行正常,但Android Studio Failed to resolve: :my-library-release:在gradle同步期间报告.如果我./gradlew assemble在命令行上执行操作,然后同步Android Studio,则AS Gradle同步成功.

这个问题与时间有关binaryImplementation(name: 'my-library-release', ext: 'aar').执行Gradle Sync时,aar尚未存在,因为尚未构建.

有没有更好的方法来避免Failed to resolveAndroid Studio Gradle同步错误?

Zak*_*rdi 1

答案可以在这里找到 - 使用该 AAR 公开配置,并在下游使用该配置

https://docs.gradle.org/current/userguide/cross_project_publications.html