Obsolete
Status Update
Comments
be...@google.com <be...@google.com> #3
Solution posted by shawnt...@gmail.com worked for me.
ch...@google.com <ch...@google.com> #4
As a workaround, passing 24 instead 'N' to minSdkVersion should fix the issue.
jp...@google.com <jp...@google.com> #5
Fix is in review, we will publish an alpha6 asap.
[Deleted User] <[Deleted User]> #6
alpha6 was released earlier today, please verify it fixes your issue.
thanks for reporting !
thanks for reporting !
jo...@gmail.com <jo...@gmail.com> #7
Appears to be fixed to me. Thanks!
be...@google.com <be...@google.com>
ga...@google.com <ga...@google.com> #8
Having Jack accept only ints as min API level might be an issue because those are published after the SDK preview version is published.
I can fix the plugin to pass 'N' for jack.android.min-api-level, but it would require Jack to start accepting preview API versions as well.
I can fix the plugin to pass 'N' for jack.android.min-api-level, but it would require Jack to start accepting preview API versions as well.
ga...@google.com <ga...@google.com> #9
Thank you for your feedback. We've decided to add support for Java 8 language features directly into the current javac and dx set of tools, and deprecate the Jack toolchain. For more info please see https://android-developers.googleblog.com/2017/03/future-of-java-8-language-feature.html .
Description
apply plugin: 'com.android.application'
android {
compileSdkVersion 'android-N'
buildToolsVersion "24.0.0 rc3"
defaultConfig {
applicationId "example.com.simplejava8features"
minSdkVersion 'N'
targetSdkVersion 'N'
versionCode 1
versionName "1.0"
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0-alpha2'
compile 'com.android.support:design:24.0.0-alpha2'
}
Gradle Output:
:app:compileDebugJavaWithJack
WARNING: /../android/SimpleJava8Features/app/src/main/java/example/com/java8/Person.java:243: The type parameter Person is hiding the type Person
WARNING: /../android/SimpleJava8Features/app/src/main/java/example/com/java8/SomeClass.java:42: Type safety: A generic array of Consumer<String> is created for a varargs parameter
ERROR: /../android/SimpleJava8Features/app/src/main/java/example/com/java8/defaultmethods/TimeClient.java:24: Default method java.lang.String getZonedDateTime(java.lang.String zoneString) not supported in Android API level less than 24
ERROR: /../android/SimpleJava8Features/app/src/main/java/example/com/java8/defaultmethods/TimeClient.java:14: Static method java.lang.String getZoneId(java.lang.String zoneString) not supported in Android API level less than 24
com.android.jack.api.v01.CompilationException
at com.android.jack.api.v01.impl.Api01ConfigImpl$Api01CompilationTaskImpl.run(Api01ConfigImpl.java:113)
at com.android.builder.core.AndroidBuilder.convertByteCodeUsingJackApis(AndroidBuilder.java:1904)
at com.android.build.gradle.tasks.JackTask.doMinification(JackTask.java:148)
at com.android.build.gradle.tasks.JackTask.access$000(JackTask.java:73)
at com.android.build.gradle.tasks.JackTask$1.run(JackTask.java:112)
at com.android.builder.tasks.Job.runTask(Job.java:51)
at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:223)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.jack.JackAbortException
at com.android.jack.abort.Aborter.run(Aborter.java:35)
at com.android.jack.abort.Aborter.run(Aborter.java:29)
at com.android.sched.scheduler.ScheduleInstance.runWithLog(ScheduleInstance.java:161)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$SequentialTask.process(MultiWorkersScheduleInstance.java:442)
at com.android.sched.scheduler.MultiWorkersScheduleInstance$Worker.run(MultiWorkersScheduleInstance.java:162)