Android Studio2.1.2 Java8环境下引用Java Library编译出错

来源:互联网 发布:木工设计软件 编辑:程序博客网 时间:2024/06/16 00:32

转载请注明出处:http://www.cnblogs.com/LT5505/p/5685242.html

问题:在Android Studio2.1.2+Java8的环境下,引用Java Library,同时引用了dataBinding处于enable状态,会导致编译出错,提示“This is caused by library dependencies that have been compiled using Java 8 or above.”,如下图所示:

解决步骤

1、在所有的module的build.gradle文件中添加如下代码:

android {    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_7        targetCompatibility JavaVersion.VERSION_1_7    }}

再次编译运行,发现还是报同样的错误,所以肯定还要修改其他的地方。

2、觉得设置Java版本为1.7行不通,就直接把版本改为了1.8

android {    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }}

结果报出错误需要将Jack设置为enable状态,如下:

我在网上百度了资料,修改主module的build.gradle文件,添加代码

defaultConfig {    jackOptions {        enabled true    }}

再次编译,发现我的情况还真是特殊,还是报错了,因为我使用了databinding,

3、最后还是修改回了,设置Java版本为1.7,但是这次除了在module的build.gradle文件中设置Java的版本,同时在引用的Java Library的build.gradle文件中添加了如下

“sourceCompatibility = '1.7'”和“targetCompatibility = '1.7'”,代码如下
复制代码
apply plugin: 'java'dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    sourceCompatibility = '1.7'    targetCompatibility = '1.7'}
复制代码

终于编译成功了。

后续:当然网上说也可以同时安装Java1.7和Java1.8,我个人觉得装两个版本也挺麻烦的,所以还是配置下比较方便。

总结:

Java 1.8版本环境下有些功能还不支持,安装配置环境时最好是选择稳定成熟的。

0 0
原创粉丝点击