android studio 不支持 java 8?

2015-06-30 16:39:04 +08:00
 wohenyingyu01
本机环境为装且仅装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'
}
9767 次点击
所在节点    问与答
11 条回复
wohenyingyu01
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
2015-06-30 17:17:28 +08:00
neo2015
2015-06-30 17:23:02 +08:00
是Android不支持JAVA8,就没法用lambda
honeycomb
2015-06-30 17:48:54 +08:00
Android Studio可以在JDK8的虚拟机运行,但Android SDK不支持JDK8的新特性
但是应该可以在使用JDK8时,让Compatibility设置为JAVA 1.7时编译通过
wohenyingyu01
2015-06-30 18:11:35 +08:00
@neo2015
@honeycomb
谢谢,眼看java9都出了,Google又被oracle告了,估计是不想支持java了吧,说不定以后根据java衍生出新的语言,像swift一样哈哈哈
wohenyingyu01
2015-06-30 18:12:41 +08:00
@Septembers 这是去年的帖子,那时候java8好像还没正式发布吧?
holmesabc
2015-06-30 18:25:52 +08:00
android不支持, 基本算个jdk6
wohenyingyu01
2015-06-30 20:16:33 +08:00
@holmesabc jdk6的时候我还不会java。。。
Bown
2015-06-30 20:40:02 +08:00
不支持,想用lambda的话可以试试这个 https://github.com/orfjackal/retrolambda
wohenyingyu01
2015-07-01 20:55:45 +08:00
@Bown 谢谢
21grams
2015-08-04 22:51:54 +08:00
android目前支持到jdk7

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/202226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX