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

一、 背景叨叨叨

今天,好久没有写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版本有关的都改为低版本的

build.gradle文件目录

build.gradle文件内容

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

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

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

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

/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/

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

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界面吧!

Booooooooom!!!

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

六、 结尾有彩蛋

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

当SQL Server爱上Linux:AVAILABILITY_MODE 和 DataGuard 的实践差距

作者 | 张乐奕:Oracle ACE 总监,ACOUG (中国 Oracle 用户组)联合发起人。Oracle 数据库高可用解决方案与 Exadata 一体...

10520
来自专栏Elasticsearch实验室

Elasticsearch调优实践

本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES的调优绝不能一概...

6.6K160
来自专栏运维

ELK分析ngx_lua_waf软件防火墙日志

https://github.com/loveshell/ngx_lua_waf

32810
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

26280
来自专栏美团技术团队

MTDDL——美团点评分布式数据访问层中间件

背景 2016年Q3季度初,在美团外卖上单2.0项目上线后,商家和商品数量急速增长,预估商品库的容量和写峰值QPS会很快遇到巨大压力。随之而来也会影响线上服务的...

59450
来自专栏企鹅号快讯

JDBC编程

前面我们已经讨论了数据库的安装和简单的使用,还没完成的可以先去Mysql的安装和Mysql数据库的简单操作回顾一下哦!今天我们来简单学习JDBC编程的准备和链...

35480
来自专栏我的小碗汤

6个最好的Go语言Web框架

原文:Top 6 web frameworks for Go as of 2017

22810
来自专栏Java工程师日常干货

Redis高级特性介绍及实例分析Redis基础类型回顾 Redis发展过程中的三种模式:主从、哨兵、集群 哨兵模式 Redis的简单事务 Redis持久化机制 发布与订阅消息 Redis案例设计

本文将为大家介绍Redis的一些高级特性以及结合一个具体的实际案例来对Redis进行设计分析。

21720
来自专栏Kevin-ZhangCG

[ SSH框架 ] Hibernate框架学习之一

 CRM(Customer Realationship Management)客户关系管理,是利用相应的技术信息以及互联网技术来协调企业与顾客间在销售、营销和...

36770
来自专栏Linyb极客之路

杂谈Java高并发

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那...

63550

扫码关注云+社区

领取腾讯云代金券