當我使用lambda來遍歷字符串數組時,我得到了跟隨錯誤。NoClassDefFoundError當我使用lambda來遍歷字符串數組
java.lang.NoClassDefFoundError: com.twsz.app.ivybox.alarm.CreateOrUpdateAlarmActivity$$Lambda$1
at com.twsz.app.ivybox.alarm.CreateOrUpdateAlarmActivity.initView(CreateOrUpdateAlarmActivity.java:143)
at com.twsz.app.ivybox.alarm.CreateOrUpdateAlarmActivity.onCreate(CreateOrUpdateAlarmActivity.java:73)
這是我的code.I知道傳統的方式來遍歷字符串數組是可以的,但爲什麼當我使用lambda時會發生這種情況。
String[] days = dayOfWeek.split(",");
Arrays.asList(days).forEach(day->{
int index = Integer.valueOf(day) -1;
checkBoxList.get(index).setChecked(true);
});//where happens NoClassDefFoundError
我的build.gradle文件
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.twsz.app.ivybox"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
dataBinding {
enabled = true
}
}
感謝您的幫助。
@SachinGupta String like「1,2,3,4,5,6,7」 – Cyrus
檢查此問題http://stackoverflow.com/questions/34162074/transforming-lambdas-in-java-8 –
lamda require java8或更新。據我所知android還不支持java8。 – k3b