集成Shimmer驱动时Gradle同步报错:No variants found for ':app'
解决Gradle同步报错“No variants found for ':app'”的排查方案
一、Java版本兼容性问题
ShimmerAndroidInstrumentDriver这类第三方驱动一般基于Java 8开发,而Android Gradle插件(AGP)对高版本Java的支持有明确要求:
- AGP 7.0+ 支持Java 11,AGP 7.3+ 才开始支持Java 17。如果驱动的字节码版本和项目当前Java版本不兼容,会直接导致变体生成失败。
- 先确认项目的AGP版本,打开
build.gradle(Project)查看:dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 确保版本匹配所用Java版本 } - 强制驱动模块使用兼容的Java版本,在
libs/ShimmerAndroidInstrumentDriver/build.gradle中添加:android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
二、依赖配置遗漏或错误
settings.gradle配置检查:
确保已正确引入驱动模块,路径要和实际文件夹结构一致,比如:include ':app', ':libs:ShimmerAndroidInstrumentDriver'别写错文件夹名称或层级。
app模块依赖声明:
在build.gradle(:app)里确认正确引用驱动模块,用当前推荐的依赖关键字:dependencies { implementation project(':libs:ShimmerAndroidInstrumentDriver') }别用已经废弃的
compile关键字。
三、模块变体不匹配
检查驱动模块的build.gradle里的Android配置:
- 比如
minSdkVersion、targetSdkVersion,如果驱动的minSdk比你app的版本高,会导致变体无法匹配。举个例子,app设置minSdkVersion 21,但驱动是minSdkVersion 26,就得把驱动的minSdk调整到和app一致或者更低。
四、清理缓存重新构建
- 执行Android Studio的
File > Invalidate Caches... > Invalidate and Restart清除缓存,再重新同步Gradle。 - 也可以手动删除项目根目录的
.gradle文件夹,以及app/build、libs/ShimmerAndroidInstrumentDriver/build目录,之后重新构建项目。
内容的提问来源于stack exchange,提问作者Bharath Thirunahari
相关产品推荐
相关产品推荐

