一、 背景叨叨叨
今天,好久没有写Android程序的我突发奇想,想简单写一个每日任务APP。好的!新建工程->写好代码框架->开启模拟器->运行!哎哎哎?!那啥!咋报错了嘞?!来到控制台,看到了我们的主角:
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版本有关的都改为低版本的
2. 方法1当然是指标不治本,到以后,我们肯定要用到Android N的特性的,所以与其拖延,不如我们马上把JDK 1.8下过来安装的好。
四、 九曲十八弯的安装之路
原谅我话唠,这里多扯几句哈!哈哈哈哈!
最开始,傻乎乎的我安装的是jre,安装好后发现这个小家伙的安装路径是:
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/
然后,我配置了一下Android Studio的JDK的路径,然后就蒙了。。。
后来想想,发现了问题所在:人家热情洋溢地邀请我安装JDK路径,我热情似火地给了它一个JRE的路径,人家当然要给我吃闭门羹啦!哈哈哈哈!不知道有多少小伙伴跟我一样中过枪!
后来到Oracle官网去下载JDK 1.8,Safari右上角友好地提示:下载完成还需2个小时,当时我整个人就愣住了,下载好后都可以睡觉了,哈哈!开个挂吧!打开鱼摆摆,把代理开到美国的弗里蒙特(嘿嘿!安利一下!)网速那个快啊!不到一分钟就搞定了!
说到鱼摆摆,这里强调一下,鱼摆摆的官网是: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的默认安装路径。
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
配置好了!哈哈!终于可以看看我搭的界面框架了,运行工程啦!啦啦啦!来看看我的APP界面吧!
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
好吧!天将降大任于斯人也,必先赐其BUG!哈哈!
六、 结尾有彩蛋
你以为这样就完了?!来!最后再叨叨几句!
说到JDK 1.8,大家应该知道Java JDK 1.8里面的Switch可以支持对字符串进行判别了!如今Open JDK 1.7也支持这样的特性了,Oracle JDK 1.7目前不知道支不支持。既然已经支持了,但是还是有很多童鞋发现,尽管自己使用的是Open JDK 1.7,但是代码里Switch对字符串进行判别还是会报错,这是因为使用的Eclipse版本太旧,其本身编译器还没有支持这种特性,所以说:
时代在变,工具在更新,而我们,也要用新知识武装更新自己,才能不被时代的逆流淘汰!