解决mysql-connector-java驱动编译时Dex cannot parse version 52 byte code...等错误

来源:互联网 发布:域名服务器ip 编辑:程序博客网 时间:2024/06/05 09:34

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.

最近为了做一个简单的数据库应用,打算直接把客户端和数据库连接起来,省去用java或者php去写后端接口程序。因此想到了在Android端用mysql-connector-java驱动包直接访问服务器上的数据库(首先说明这是可行的)
于是去Mysql官网找到了最新版的jar包下载,直接把mysql-connector-java-5.1.40-bin.jar(开发版最新为6.0.5)引入Android工程,(我用的是Android Studio)Build没有任何问题,但是在构建APK的时候出错了,错误也就是文章开头那个。
错误的意思大概是这个包不支持Java8(52是Java8的字节码版本号),需要你去build.gradle里手动修改项目的兼容性到1.7。网上查了很多很多资料都是这个解决办法,然而并无用。

我还尝试了6.0.5的开发版、降低JDK版本等,仍旧报错。然后我在Intellij IDEA下建了个普通的Java工程,连接数据库的代码不变,同样引入jar包,居然成功了(能够远程连接我云服务器上的数据库并进行数据操纵)。

因此,看来这并不是什么Java版本的问题,而是mysql-connector-java-5.1.40-bin.jar这个版本的驱动和Android编译不兼容的问题,最后,通过Google找到了解决办法。

直接用低版本的比如mysql-connector-java-5.1.36-bin.jar引入Android工程即可,成功立竿见影。

最后附上如何连接Mysql数据库并进行增删查改的Java代码:
http://blog.csdn.net/lxp116/article/details/9175551

1 0
原创粉丝点击