我已将 java 编译版本更改为 1_8。
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
之后我运行了我的项目,收到以下错误,不知道该怎么办?
Error:Default method boolean test(java.lang.Object null) not supported in Android API level less than 24
Error:Default method void forEach(java.util.function.Consumer null) not supported in Android API level less than 24
Error:Static method void com_google_common_collect_Multiset_lambda$forEachEntry$0(java.util.function.ObjIntConsumer null, com.google.common.collect.Multiset$Entry null) not supported in Android API level less than 24
Error:Default method void forEach(java.util.function.BiConsumer null) not supported in Android API level less than 24
Error:Default method void addAll(java.lang.Iterable null) not supported in Android API level less than 24
Error:Default method boolean enclosesAll(java.lang.Iterable null) not supported in Android API level less than 24
Error:com.android.jack.JackAbortException
Warning:Exception while processing task java.io.IOException: com.android.jack.api.v01.CompilationException
Error:Execution failed for task ':MyApp:compileDebugJavaWithJack'.
> java.io.IOException: com.android.jack.api.v01.CompilationException
有人可以帮我解决这个问题吗?
最佳答案
Jack
-编译器已弃用,不应使用。如果您使用 Android Studio 3.0,则只需切换到新的 desugar
功能,该功能支持 Java 8 功能,例如适用于任何 minSdkVersion
的 default
方法。
此处描述了desugar
的功能以及如何从Jack切换到当前解决方案:
关于java - API 级别低于 24 时不支持默认方法 boolean methodname(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47407142/