在项目中使用了Java8
和Jack
编译器来使用一些Java 8
的新特性,比如Lambda。
在app
的build.gradle
文件中加入如下配置:
android {
compileSdkVersion 'android-25'
buildToolsVersion '25.0.2'
defaultConfig {
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
将项目中一些可以复用的代码整理成
module
,然后在
app
中引用。问题来了,首先是
Jack
是不能在
modlue
中
enable
的。如果将下面代码写在
modlue
的
build.gradle
中,报错:Library projects cannot enable Jack. Jack is enabled in default config
解决办法:删除以下代码:
jackOptions {
enabled true
}
添加以下代码:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar"
}
}
重新编译就OK了。