compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
这样java8的新特性也是可以正常编译了,但是上面的配置只是针对java代码的编译,kotlin代码编译的时候依然是使用的jdk1.6在编译。
要想kotlin也用jdk1.8编译,需要添加kotlin相关的编译配置,如下:
kotlinOptions { jvmTarget = '1.8' }
如果没有加上面的设置,老版本的kotlin可以编译,但是运行时会报错,新版本的kotlin编译时就会报错:
Error:(20, 31) Calls to static methods in Java interfaces are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'
原文:http://blog.51cto.com/kankan/2107933