V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wohenyingyu01
V2EX  ›  问与答

android studio 不支持 java 8?

  •  
  •   wohenyingyu01 · 2015-06-30 16:39:04 +08:00 · 9773 次点击
    这是一个创建于 3442 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本机环境为装且仅装jdk 1.8.0_45,配置无误,安卓项目编译运行正常,但是我需要用几个java8的新特性却出现问题:

    用lambda 语法和method reference语法在android studio 里都没有报错,但是一编译就会出现

    error: lambda expression are not support in -source 1.7
    (use -source 8 to enable)

    我在gradle里加上java版本

    compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }

    就会报错:

    Error:Execution failed for task ':app:dexDebug'.
    > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1


    附上整个环境:

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
    applicationId "com.example.zj299.activityswitcher"
    minSdkVersion 22
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    }
    compileOptions{
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }
    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }
    compileOptions {
    }
    }

    dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.google.android.gms:play-services:7.5.0'
    }
    11 条回复    2015-08-04 22:51:54 +08:00
    wohenyingyu01
        1
    wohenyingyu01  
    OP
       2015-06-30 16:52:13 +08:00
    console报错信息:
    * What went wrong:
    Execution failed for task ':app:dexDebug'.
    > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
    Septembers
        2
    Septembers  
       2015-06-30 17:17:28 +08:00
    neo2015
        3
    neo2015  
       2015-06-30 17:23:02 +08:00
    是Android不支持JAVA8,就没法用lambda
    honeycomb
        4
    honeycomb  
       2015-06-30 17:48:54 +08:00
    Android Studio可以在JDK8的虚拟机运行,但Android SDK不支持JDK8的新特性
    但是应该可以在使用JDK8时,让Compatibility设置为JAVA 1.7时编译通过
    wohenyingyu01
        5
    wohenyingyu01  
    OP
       2015-06-30 18:11:35 +08:00
    @neo2015
    @honeycomb
    谢谢,眼看java9都出了,Google又被oracle告了,估计是不想支持java了吧,说不定以后根据java衍生出新的语言,像swift一样哈哈哈
    wohenyingyu01
        6
    wohenyingyu01  
    OP
       2015-06-30 18:12:41 +08:00
    @Septembers 这是去年的帖子,那时候java8好像还没正式发布吧?
    holmesabc
        7
    holmesabc  
       2015-06-30 18:25:52 +08:00
    android不支持, 基本算个jdk6
    wohenyingyu01
        8
    wohenyingyu01  
    OP
       2015-06-30 20:16:33 +08:00
    @holmesabc jdk6的时候我还不会java。。。
    Bown
        9
    Bown  
       2015-06-30 20:40:02 +08:00
    不支持,想用lambda的话可以试试这个 https://github.com/orfjackal/retrolambda
    wohenyingyu01
        10
    wohenyingyu01  
    OP
       2015-07-01 20:55:45 +08:00
    @Bown 谢谢
    21grams
        11
    21grams  
       2015-08-04 22:51:54 +08:00
    android目前支持到jdk7
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:44 · PVG 04:44 · LAX 12:44 · JFK 15:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.