前段时间把AndroidStudio升级到了3.5版本,同时更新gradle插件为3.5.0版本、更新gradle wrapper为5.4.1版本。更新完成后编译项目,发现所有AIDL文件编译都报错,错误提示信息类似:
F:\xxx\.\app\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\xxx\…\xxx.java.java:69: 错误: 解析时已到达文件结尾。
检查后发现所有AIDL文件编译后生成的java文件都不完整,都只生成了部分java代码。于是想办法解决此问题……周六捣鼓了半天终于找到了解决方法:将gradle.properties中org.gradle.jvmargs配置的值改为:org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
如下图示:
修改后gradle clean并重新编译项目即可。问题产生的原因是gradle5.0以上的版本编译时将后台内存堆大小从1GB降为了512M,可能是这个原因导致aidl编译后无足够的内存缓存,进而导致所生成的java文件都不完整。Android官网对gradle5.0+版本的提示:
Android Studio和gradle升级经常会搞出些莫名其妙的问题……希望这篇文章能帮到同样遇到此问题的同学。。
参考文章:https://developer.android.google.cn/studio/releases/gradle-plugin