前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >compileSdkVersion 'android-24' requires JDK 1.8 or later to compile

compileSdkVersion 'android-24' requires JDK 1.8 or later to compile

作者头像
代码咖啡
发布2018-08-28 10:21:48
6420
发布2018-08-28 10:21:48
举报
文章被收录于专栏:程序员叨叨叨程序员叨叨叨

一、 背景叨叨叨

今天,好久没有写Android程序的我突发奇想,想简单写一个每日任务APP。好的!新建工程->写好代码框架->开启模拟器->运行!哎哎哎?!那啥!咋报错了嘞?!来到控制台,看到了我们的主角:

代码语言:javascript
复制
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.

二、 为啥有这样的错误

这是明摆着告诉我们,当前工程用的是Android SDK 24编译的,也就是之前新出的Android N,虽然没有接触过N版本,但是多少也有耳闻,这个版本除了很多新的特性(听说出AR了,好激动>o<),需要JDK 1.8来支持。嗯!很靠谱的分析-_-||

三、怎么解决呢

有病得治!药不能停啊!要把工程做下去,需要解决这个问题啊!这里有两种解决方法:

1. 来到我们的gradle文件,把与Android SDK 24版本有关的都改为低版本的

build.gradle文件目录

build.gradle文件内容

2. 方法1当然是指标不治本,到以后,我们肯定要用到Android N的特性的,所以与其拖延,不如我们马上把JDK 1.8下过来安装的好。

四、 九曲十八弯的安装之路

原谅我话唠,这里多扯几句哈!哈哈哈哈!

最开始,傻乎乎的我安装的是jre,安装好后发现这个小家伙的安装路径是:

代码语言:javascript
复制
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/

然后,我配置了一下Android Studio的JDK的路径,然后就蒙了。。。

JDK路径不可用

后来想想,发现了问题所在:人家热情洋溢地邀请我安装JDK路径,我热情似火地给了它一个JRE的路径,人家当然要给我吃闭门羹啦!哈哈哈哈!不知道有多少小伙伴跟我一样中过枪!

后来到Oracle官网去下载JDK 1.8,Safari右上角友好地提示:下载完成还需2个小时,当时我整个人就愣住了,下载好后都可以睡觉了,哈哈!开个挂吧!打开鱼摆摆,把代理开到美国的弗里蒙特(嘿嘿!安利一下!)网速那个快啊!不到一分钟就搞定了!

代码语言:javascript
复制
说到鱼摆摆,这里强调一下,鱼摆摆的官网是:https://ybb1024.com
不是网上所说的http://www.yubaibai.com,这个网站是不是山寨的,代理速度慢到不行!
不要点进去哦!

为了照顾没有访问外国网站的童鞋们,我把JDK放到了百度云盘,这里是下载地址,速度非超级会员下载速度可能会慢一点,但是相比于官网的速度已经快多了哦!

五、 配置JDK路径

我们打开Android Studio,在File->Project Structure...->SDK Location->JDK Location中选择我们的JDK 1.8路径就好!

什么?你不知道刚刚安装的JDK 1.8在哪个路径?下面是JDK 1.8的默认安装路径。

代码语言:javascript
复制
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

配置好了!哈哈!终于可以看看我搭的界面框架了,运行工程啦!啦啦啦!来看看我的APP界面吧!

Booooooooom!!!

好吧!天将降大任于斯人也,必先赐其BUG!哈哈!

六、 结尾有彩蛋

你以为这样就完了?!来!最后再叨叨几句!

说到JDK 1.8,大家应该知道Java JDK 1.8里面的Switch可以支持对字符串进行判别了!如今Open JDK 1.7也支持这样的特性了,Oracle JDK 1.7目前不知道支不支持。既然已经支持了,但是还是有很多童鞋发现,尽管自己使用的是Open JDK 1.7,但是代码里Switch对字符串进行判别还是会报错,这是因为使用的Eclipse版本太旧,其本身编译器还没有支持这种特性,所以说:

时代在变,工具在更新,而我们,也要用新知识武装更新自己,才能不被时代的逆流淘汰!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.08.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档