添加第三方jar包后编译报错

作者: 富爸爸之父 | 来源:发表于2017-09-12 15:49 被阅读0次

为model添加了一个第三方的jar包,同步build的之后报错。

Error:Error converting bytecode to dex:

Cause: Dex cannot parse version 52 byte code.

This is caused by library dependencies that have been compiled using Java 8 or above.

If you are using the 'java' gradle plugin in a library submodule add

targetCompatibility = '1.7'

sourceCompatibility = '1.7'

to that submodule's build.gradle file.

大概的意思是 这个Jar包是用Java 8 打包的,但是Android Studio的默认用的JDK1.7,所以如果想使用这个jar包,

请到生成jar包的model的build.gradle中添加targetCompatibility = '1.7' sourceCompatibility = '1.7'。

一开始我理解错了,以为是在我的app的model build.gradle中添加targetCompatibility = '1.7' sourceCompatibility = '1.7'这两句,

结果加上去之后毫无效果,所以才认真理解这个error的提示内容,发现这是要求在lib生成的model中加的,然而这个第三方的jar没有源码,

所以我考虑把我的jdk设置为1.8,使用java8编译。

然而,我才发现我环境变量中配的就是java 8 ,为什么还会报这个错呢。我查了一下资料,才知道AndroidStudio要使用JAVA8必须要收到设置,

所以在build.gradle中增加了:

compileOptions{

targetCompatibility JavaVersion.VERSION_1_8

sourceCompatibility JavaVersion.VERSION_1_8

}

然后点同步,报错:

Error:Jack is required to support java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8.

在module的defaultConfig里添加

jackOptions {

enabled true

}

再同步一下,build通过。

整个model的build.gradle:

applyplugin:'com.android.application'

android {

compileSdkVersion26

buildToolsVersion"26.0.1"

defaultConfig {

applicationId"com.soft.jgui.connmysql"

minSdkVersion21

targetSdkVersion26

versionCode1

versionName"1.0"

testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"

jackOptions {

enabledtrue

}

}

buildTypes {

release {

minifyEnabledfalse

proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

}

}

compileOptions{

targetCompatibility JavaVersion.VERSION_1_8

sourceCompatibility JavaVersion.VERSION_1_8

}

}

dependencies {

compile fileTree(dir:'libs',include: ['*.jar'])

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

excludegroup:'com.android.support',module:'support-annotations'

})

compile'com.android.support:appcompat-v7:26.+'

compile'com.android.support.constraint:constraint-layout:1.0.2'

testCompile'junit:junit:4.12'

相关文章

  • 添加第三方jar包后编译报错

    为model添加了一个第三方的jar包,同步build的之后报错。 Error:Error converting ...

  • Android Studio 导入jar包报错解决

    粘贴了一个jar包后,报错: 第一步 问题来自jar包用java1.8编译,而Android Studio 默认用...

  • 2022-06-29

    android studio将含有第三方jar包的lib库工程打成jar包 一、配置编译代码 如图:核心编译配置代...

  • NoClassDefFoundError: Lorg/slf4j

    IDEA MAVEN TOMCAT 启动报错 找不到slf 原因是没有相应jar包,其实就是编译后没有lib包 所...

  • selenium

    如果不添加最后一个jar包报错行为WebDriver driver = new ChromeDriver();报错...

  • springboot打包后访问templates下html报错

    IDEA直接编译运行没有报错,但是当打成jar包后运行报: 需要将return "/html/home";改为 r...

  • 1.学习Java心得

    1.MySQL驱动jar包,需要与MySQL版本对应,不同版本jar会报错。 2.IDEA导入jar包,需要添加到...

  • Maven

    为什么要使用Maven 添加第三方jar包,使用Maven后,jar包没必要复制到lib文件下了,只需要给一个坐标...

  • maven打jar包到本地仓库

    maven打包第三方jar包到本地仓库,需要jar包是maven项目,否则报错,说找不到pom.xml.

  • Hadoop:运行自己打包的jar时报错Exception in

    1.当java文件不在当前目录下,编译后打包,运行报错如下: 2.将java文件放到当前目录下编译,打成jar包,...

网友评论

    本文标题:添加第三方jar包后编译报错

    本文链接:https://www.haomeiwen.com/subject/uavcsxtx.html