因为项目中有Java和Kt,同时也是组件化项目,所以配置方面一直存在一些问题(项目可正常运行,只是影响开发效率),此处仅记录我在AndroidStudio中更新AGP(Android Gradle Plugin,即Android 官方开发的Gradle插件)时所遇问题
因为主要涉及到 Gradle
和 GradlePlugin
,同时兼顾 Java
与 Kt
中 Gradle相关配置
的不同,所以可根据需求对应查看 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.?(翻译为代码有坏味道)
场景:该问题一般出现在更新AGP出错
的时候,一般我们需要在build.gradle.kts
和gradle-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
图示
错误原因
:主要是 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部分删除。
我在查解放方式
时,发现有一位朋友遇到该错误的场景
是搭建友盟集成环境时报错
… 我自己是 更新Plugin 失败后报的错
通用解放方式
一般也是在主app模块
的build.gradle
里面的 defaultConfig标签
加入了 flavorDimensions "versionCode"
主app模块
的build.gradle
defaultConfig标签
加入了 flavorDimensions "versionCode"
Look Here:我出现这个问题的时候上方的解决方式无效,我是在更新AGP失败后,配置文件发生了改变,但是却无法编译才出的报错
我之前说过在项目中用了 Java
和 Kt
,也用到了组件化开发
,所以在 build.gradle (Project)
中有 buildscript - dependencies
主要设置一些 gradle
的配置
平常新建项目的 build.gradle (Project)
我的组件化项目 build.gradle (Project)
更新失败后的错误版本都在红框内,只要将这里的相关配置、版本改为之前的就好,最多不更新就好
我遇到这个问题的时候,主要是应用都无法启动了,没有相关配置,当然也是因为我瞎操作导致的
通过 Edit configuration templates...
重新配置启动组件
,如下图,配置时没有module
可选,因此报错error: Module not specified
我是因为AGP更新失败,导致无法识别组件,才遇到的这个问题,在我将build.gradle (Project)
回退后,方可正常运行
别人的解决方法
settings.gradle
,删除include ':app'
Android Studio
上,点击File --> Sync Project with Gradle files
include ':app'
重新写入settings.gradle
File
--> Sync Project with Gradle files