android studio与不同jdk的配置

我们知道jdk的版本升级都会有一些对开发者比较好用的新特性,比如1.7支持了new ArrayList<>(); switch “string”,1.8的lambda表达式,合理使用这些新特性会有助于我们的开发。

有时候,如果导入了比较高版本的jdk写法的时候,你只能选择用对应版本的jdk来进行编译。

修改位置:module setting里properties的source Compatibility 和target Compatibility.

1.6改到1.7基本没什么坑和需要设置的。

改到1.8时候则需要注意。

如果你的module比较简单,可能会看到如下的报错:

Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.

在module的defaultConfig里添加

jackOptions {

enabled true

}

注buildTools需要24.0.0以上

在网上查了下,这么做会不能兼容其他的apt插件,比如butterknife,Dagger等,jdk8和apt二选一。

同样是换到了jdk8我在一个比较复杂的Project中时候报的错不是上述的,而是 说j

“XX\bin\java.exe'' finished with non-zero exit value 2”.

在网上看到了,还有另一种的第三方兼容解决方案:GitHub - evant/gradle-retrolambda: A gradle plugin for getting java lambda support in java 6, 7 and android。 有兴趣的可以自己去尝试下。

注:本人使用的as2.1(mac) 其他版本是否有类似问题未去验证。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容