开发者社区 问答 正文

Android可以使用jdk1.7吗?报错

我下载了zxing的源码和实例,但是demo中用了大量jdk1.7才支持的函数,比如switch(String)等,导致我编译不过去,把编译环境改为jdk1.7之后,android又报错:Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

fix之后,编译环境又编程jdk 1.6,真是郁闷

展开
收起
爱吃鱼的程序员 2020-06-22 11:46:21 838 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    显然不可以,androidSDK编译后的java字节码和jdk编译后的字节码都不一样。

    可以设置target.source=1.6和compiler.source=1.6,这样使用jdk1.7

    <divclass="ref">

    引用来自“JerryLin”的答案

    <divclass=ref_body>

    可以设置target.source=1.6和compiler.source=1.6,这样使用jdk1.7

    一般这种情况可能还跟对方开发的JDK跟你的不同有关系,比如那边是openjdk一类的,把工程属性java编译器那个页面再摆弄一下试试看?

    jdk是向下兼容的,就是说你基于jdk1.6写的代码在jdk1.7的环境下是可以运行的。你基于jdk1.7新特性编写的代码显然不能够在jdk1.6的环境下运行。

    普通jdk使用的jvm是hotspot,而android的jvm是dalvik,你需要找的是支持jdk1.7的dalvik。

    先安装jdk1.7,去http://developer.android.com/sdk/index.html下载最新版adt就行了。我就是这样解决的。

    2020-06-22 11:46:40
    赞同 展开评论
问答分类:
问答地址: