一个很蛋疼的问题。
是这样的:
在项目中使用了Java8
和Jack
编译器来使用一些Java 8
的新特性,比如Lambda
,用着的确很爽。
配置如下:
在app
的build.gradle
文件中加入如下配置:
jackOptions {
enabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
相安无事了很久,直到今天,打算将项目中一些可以复用的代码整理成module
,然后在app
中引用。问题来了,首先是Jack
是不能在modlue
中enable
的。如果将下面代码写在modlue
的build.gradle
中:
jackOptions {
enabled true
}
就会报如下错误:
Error:Library projects cannot enable Jack. Jack is enabled in default config.
所以删掉了这句话,然后留下这句话:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
然后Android Studio
就会提示我module
中有些seOnClickListener
之类的代码可以替换成Lambda
,满心欢喜,以为搞定了。然而Make Project
却出现如下错误:
Error:Execution failed for task ':customviews:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
只要我把module
中Lambda
表达式改成普通写法,就不会报这个错。我也不知道哪里出问题了,悲催。
希望大神帮我解决下!
PS:不要说用第三方插件实现Lambda
,感觉为了一个Lambda
引一个库,得不偿失。
加上这句
gradle.projectsEvaluated {
}
http://stackoverflow.com/ques...