【发布时间】:2021-08-04 19:39:04
【问题描述】:
我已经编写了一个基于 Android Gradle 插件的 Gradle 插件:对于每个变体,该插件定义了一个任务 generatevariantStuff 生成一个资产,我需要 merge variantAssets(由 AGP 定义)将我的资产作为输入,因此 mergevariantAssets 任务必须依赖于我的 generate变体Stuff 任务。
我的插件在 AGP 4.2.2 下正常工作。
AGP 7.0.0 弃用 com.android.build.gradle.api.ApplicationVariant 并将其替换为 com.android.build.api.variant.ApplicationVariant,因此我还必须将 com.android.build.gradle.AppExtension 替换为 com.android.build.api.variant.ApplicationAndroidComponentsExtension 以及变体上的循环。
现在,当 Android Studio 构建模型时,它会失败并出现以下错误:
A problem occurred configuring project ':app'.
> Task with name 'mergeDebugAssets' not found in project ':app'.
但在 Android Studio 的 Gradle 视图中,可以看到 mergeDebugAssets 任务。
似乎在AppExtension.getApplicationVariants().all()(AGP 4.2.2)方法期间,AGP已经定义了它的任务,而在ApplicationAndroidComponentsExtension.onVariants()(AGP 7.0.0)方法期间,AGP还没有定义它的任务。
您可以在https://gist.github.com/dscoppelletti/d4ca0e1a19ed4ba4aaea99cf48ae930a查看示例代码
感谢任何帮助。
【问题讨论】:
标签: android android-studio gradle android-gradle-plugin