Android 建议将 AGP 更新到 7.1.1/Gradle 7.2 后库发布失败

Android Library publishing fails after recommended AGP update to 7.1.1/Gradle 7.2

在执行升级到 AGP 7.1.1 并在库项目中从 Android Studio 执行自动升级步骤后,我的构建失败。

我遵循以下指南:https://developer.android.com/studio/build/maven-publish-plugin

我们已经使用它很长时间了,没有任何问题。

执行 IDE 中的自动化步骤后,我现在收到以下错误:

A problem occurred configuring project ':some-lib'.
> Could not find method publications() for arguments [build_546b384slk3v64hu8jsdnbywh$_run_closure1$_closure5$_closure9$_closure10@333a4a39] on object of type com.android.build.gradle.internal.dsl.LibraryPublishingImpl$AgpDecorated.

我的 build.gradle 文件如下所示:

android { 
 ...

     afterEvaluate {
        publishing {

            publications {
                mavenAar(MavenPublication) {
                    from components.release
                }
            }

            repositories {
                maven {
                    url artifact_repo_url
                    credentials {
                        ...
                    }
                }
            }
        }
    }
}

我的 gradle-wrapper.properties 看起来是这样的:

distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

关于如何解决这个问题有什么建议吗?

我的问题的答案如下所示: https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/LibraryPublishing

afterEvaluate{ publishing {} } 部分应该在 android {} 块之外并且在它自己的 afterEvaluate {}

我们还需要在 android 块中添加一个 publishing {} 部分,指定要发布的 variant/s。

对我来说,结果是这样的:

android {
    publishing {
        singleVariant("release")
    }
}


afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                // ......
            }
        }
    }
}