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) 其他版本是否有类似问题未去验证。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 9,386评论 2 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,180评论 25 709
  • 电视剧行将结束。编剧回复到10多年前的套路,轻喜剧中套一个悲剧。个人感觉,比不靠谱的最近常见的时装剧要让人能共鸣得...
    张蛤蜊阅读 1,462评论 0 1
  • 悦朋书店? 在我拐进丰乐路不久、绕过停在路边开着双闪的土豪金A4时,无意间发现了它。 上一次经过这里时还没发现,应...
    申由己阅读 10,086评论 4 50
  • 相信搞ios少不了打包,但是有时候想拿到以前打的包,那怎么办?一开始我总是重新打包,然后等到进入那个Archive...
    Sax_Frank阅读 9,301评论 0 5