MacBook M1 Pro 14寸设备Android Studio Gradle报错:找不到SourceSet 'main'
解决Gradle构建失败:找不到'main' SourceSet及弃用特性兼容问题
问题核心原因
- 找不到'main' SourceSet:Android app模块的SourceSet结构和标准Java项目不同,默认用
android.main而非直接main,直接执行:app:Test.main()会导致Gradle无法定位对应资源。 - Gradle版本兼容问题:项目使用了Gradle 8.0已废弃的特性,导致构建不兼容。
分步解决方案
一、修复SourceSet找不到的问题
- 优先用IDE直接运行:右键点击Test类,选择Run 'Test.main()',Android Studio会自动生成适配Android模块的运行配置,不用手动敲命令。
- 命令行运行的话,要么把Test类移到纯Java/Java库模块(这类模块的SourceSet是标准
main),要么在app模块的build.gradle里自定义任务:
执行命令:task runTestMain(type: JavaExec) { classpath = android.sourceSets.main.runtimeClasspath mainClass = "com.yourpackage.Test" // 替换成你的Test类完整包路径 }./gradlew :app:runTestMain
二、解决Gradle 8.0兼容问题
- 升级Android Gradle插件(AGP):在项目根目录的
build.gradle(或settings.gradle的pluginManagement区块)里,把AGP版本更改为7.4+(Gradle 8.0对应AGP 7.4.x或8.0.x):plugins { id 'com.android.application' version '7.4.2' apply false // 其他插件按对应版本更新 } - 替换废弃语法:
- 把旧的
compile关键词全换成implementation或api - 若用了
android.testVariants.all这类旧API,改成AGP 7.x+支持的android.testComponents - 检查
settings.gradle里的模块引入语法,确保符合Gradle 8.0规范
- 把旧的
- 查看完整警告:执行
./gradlew clean build --warning-mode all,根据输出的弃用提示逐一修复。
三、M1 Pro设备额外优化
- 把Android Studio更到Arctic Fox及以上版本,确保对M1芯片的适配
- 在Preferences > Build, Execution, Deployment > Build Tools > Gradle里,选择本地安装的Gradle 8.0+版本,避免IDE自带旧版本冲突
内容的提问来源于stack exchange,提问作者Md Nazmul Alom
相关产品推荐
相关产品推荐

