IntelliJ导入Android Studio项目编译报错:Execution failed for task ':app:compileDebugJavaWithJavac'
针对你遇到的:app:compileDebugJavaWithJavac编译错误,结合你的Gradle配置和已做的设置,我整理了几个针对性的解决思路,你可以逐一尝试:
明确指定Java编译版本
虽然你已经设置了Project SDK为1.8,但Gradle编译选项里缺少明确的Java版本声明,这可能导致Gradle使用默认的低版本JDK编译,从而触发错误。请在你的android块中的compileOptions里添加以下配置:compileOptions { encoding = 'ISO-8859-1' sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }这会强制Gradle使用Java 8进行编译,和你设置的Project SDK保持一致。
清理项目缓存并重新构建
缓存损坏是Android项目编译失败的常见原因,尝试以下操作:- 点击IntelliJ顶部菜单栏的
Build→Clean Project - 接着选择
Build→Rebuild Project - 如果还是不行,可以手动删除项目根目录下的
.gradle文件夹、app模块下的build文件夹以及项目根目录的build文件夹,然后重启IntelliJ再重新构建
- 点击IntelliJ顶部菜单栏的
检查模块级的SDK和语言级别配置
仅设置Project SDK可能不够,模块级的配置也需要同步:- 打开
File→Project Structure→Modules - 选中
app模块,切换到Dependencies标签页,确认Module SDK选择的是对应Android API 27的SDK(且关联的JDK是1.8) - 切换到
Sources标签页,将Language level设置为8 - Lambdas, type annotations etc.
- 打开
确认Build Tools版本已安装
你配置的buildToolsVersion '27.0.2'需要确保已经在本地SDK中安装:- 打开
Tools→SDK Manager→SDK Tools - 勾选
Show Package Details,展开Android SDK Build-Tools,确认27.0.2版本已被勾选并安装,如果没有则安装该版本
- 打开
排查编码设置可能的问题
你设置了ISO-8859-1编码,如果项目中包含中文或其他非ASCII字符,可能会导致编译时的字符解析错误。可以临时将编码改为UTF-8测试:compileOptions.encoding = 'UTF-8'如果问题解决,再考虑是否需要调整项目文件的编码格式以匹配
ISO-8859-1。检查依赖冲突
虽然你的依赖看起来版本匹配,但可以通过Gradle依赖报告排查是否有隐藏的冲突:
在IntelliJ的Terminal中运行命令:# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies查看输出中
com.android.support相关的依赖,确保所有support库版本统一为27.0.2,如果有其他版本的依赖,需要通过exclude或者强制统一版本来解决。
内容的提问来源于stack exchange,提问作者mcfly soft

