wohenyingyu01
V2EX  ›  问与答

android studio 不支持 java 8?

  •  
  •   wohenyingyu01 · Jun 30, 2015 · 10674 views
    This topic created in 4150 days ago, the information mentioned may be changed or developed.
    本机环境为装且仅装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 replies  •  2015-08-04 22:51:54 +08:00
    wohenyingyu01
    wohenyingyu01
    OP
    Jun 30, 2015
    1
    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
    neo2015
    neo2015
    Jun 30, 2015
    3
    是Android不支持JAVA8,就没法用lambda
    honeycomb
    honeycomb
    Jun 30, 2015
    4
    Android Studio可以在JDK8的虚拟机运行,但Android SDK不支持JDK8的新特性
    但是应该可以在使用JDK8时,让Compatibility设置为JAVA 1.7时编译通过
    wohenyingyu01
    wohenyingyu01
    OP
    Jun 30, 2015
    5
    @neo2015
    @honeycomb
    谢谢,眼看java9都出了,Google又被oracle告了,估计是不想支持java了吧,说不定以后根据java衍生出新的语言,像swift一样哈哈哈
    wohenyingyu01
    wohenyingyu01
    OP
    Jun 30, 2015
    6
    @Septembers 这是去年的帖子,那时候java8好像还没正式发布吧?
    holmesabc
    holmesabc
    Jun 30, 2015
    7
    android不支持, 基本算个jdk6
    wohenyingyu01
    wohenyingyu01
    OP
    Jun 30, 2015
    8
    @holmesabc jdk6的时候我还不会java。。。
    Bown
    Bown
    Jun 30, 2015
    9
    不支持,想用lambda的话可以试试这个 https://github.com/orfjackal/retrolambda
    wohenyingyu01
    wohenyingyu01
    OP
    Jul 1, 2015
    10
    @Bown 谢谢
    21grams
    21grams
    Aug 4, 2015
    11
    android目前支持到jdk7
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4614 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    ♥ Do have faith in what you're doing.