Android Gradle - AGP(Android Gradle Plugin)更新失败,你遇到了吗?

因为项目中有Java和Kt,同时也是组件化项目,所以配置方面一直存在一些问题(项目可正常运行,只是影响开发效率),此处仅记录我在AndroidStudio中更新AGP(Android Gradle Plugin,即Android 官方开发的Gradle插件)时所遇问题

因为主要涉及到 GradleGradlePlugin ,同时兼顾 JavaKtGradle相关配置的不同,所以可根据需求对应查看 Kotlin Gradle Plugin

所遇报错

  • Failed to upgrade AGP version (Gradle插件更新失败)
  • Android Studio Run/Debug configuration error: Module not specified(找不到应用启动的组件)
  • All flavors must now belong to a named flavor dimension.?(翻译为代码有坏味道)

问题解决

Failed to upgrade AGP version

场景:该问题一般出现在更新AGP出错的时候,一般我们需要在build.gradle.ktsgradle-wrapper.properties 进行相应配置

示例

build.gradle.kts

"com.android.tools.build:gradle:7.0.0-alpha14"

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip

图示
在这里插入图片描述


All flavors must now belong to a named flavor dimension.?

错误原因:主要是 Plugin 3.0.0 之后有一种自动匹配消耗库的机制,便于debug variant 自动消耗一个库,然后就是必须要所有的flavor 都属于同一个维度。为了避免 flavor 不同产生误差的问题,应该在所有的库模块都使用同一个foo尺寸。

注意Androidstudio3.0 以后 不能在manifest.xml 设置sdk最小版本,而必须在 gradle 里设置。否则会报错 The minSdk version should not be declared in the android manifest file.,解决方法是把manifest里面对应的minSdk部分删除。

扫描二维码关注公众号,回复: 15201415 查看本文章

通用方式

我在查解放方式时,发现有一位朋友遇到该错误的场景搭建友盟集成环境时报错我自己是 更新Plugin 失败后报的错

通用解放方式一般也是在主app模块build.gradle里面的 defaultConfig标签 加入了 flavorDimensions "versionCode"

主app模块build.gradle

在这里插入图片描述
defaultConfig标签 加入了 flavorDimensions "versionCode"

在这里插入图片描述


个人场景(AGP更新失败)

Look Here:我出现这个问题的时候上方的解决方式无效,我是在更新AGP失败后,配置文件发生了改变,但是却无法编译才出的报错

我之前说过在项目中用了 JavaKt ,也用到了组件化开发,所以在 build.gradle (Project) 中有 buildscript - dependencies 主要设置一些 gradle 的配置

平常新建项目的 build.gradle (Project)

在这里插入图片描述

我的组件化项目 build.gradle (Project)

在这里插入图片描述

更新失败后的错误版本都在红框内,只要将这里的相关配置、版本改为之前的就好,最多不更新就好

在这里插入图片描述


Android Studio Run/Debug configuration error: Module not specified

我遇到这个问题的时候,主要是应用都无法启动了,没有相关配置,当然也是因为我瞎操作导致的

在这里插入图片描述

通过 Edit configuration templates... 重新配置启动组件,如下图,配置时没有module可选,因此报错error: Module not specified

在这里插入图片描述

我是因为AGP更新失败,导致无法识别组件,才遇到的这个问题,在我将build.gradle (Project)回退后,方可正常运行

别人的解决方法

  1. 打开根目录的settings.gradle,删除include ':app'
  2. Android Studio上,点击File --> Sync Project with Gradle files
  3. 同步后,把include ':app'重新写入settings.gradle
  4. 重新运行File --> Sync Project with Gradle files

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/127918072
今日推荐