报错具体如下
Null extracted folder for artifact:
ResolvedArtifact(componentIdentifier=androidx.activity:activity:1.8.0,
variantName=null,
artifactFile=C:\Users\Administrator.gradle\caches\modules-2\files-2.1\androidx.activity\activity\1.8.0\4266e2118d565daa20212d1726e11f41e1a4d0ca\activity-1.8.0.aar,
extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false,
buildMapping={current_build=xxxxxx(项目地址)},
mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@35910245)
描述与尝试
这种报错大多是依赖、缓存等问题导致的
网上解决方案较多,常见的包括注释掉activity:1.8.0依赖、升级sdk/java版本、clean缓存等等,但我的项目本身没有显式引入activity:1.8.0,且其他方法尝试基本都没有效果。
猜测是某个依赖引用了androidx.activity:activity:1.8.0,因此开始查看依赖树。
解决方案
在项目根目录下
./gradlew app:dependencies --configuration debugRuntimeClasspath
此处 app为module名称
依赖树中可看到
+--- androidx.appcompat:appcompat:1.3.1 -> 1.7.1
| +--- androidx.activity:activity:1.8.0
//省略部分依赖
appcompat:1.3.1 被升级到了 appcompat:1.7.1,并引入了activity1.8.0,查找app下build.gradle中dependdencis是否引入了 appcompat:1.7.1。
若项目本身就有其他依赖已经引入了appcompact,将依赖内容注释掉或删掉即可;若项目本身没有引入太多第三方依赖,注释后缺失依赖,可尝试将其降低至1.4.2等版本
dependencies {
implementation 'androidx.appcompat:appcompat:1.7.1'
}