android JDBC mysql java连接器app:preDexDebug

时间:2015-10-17 21:37:44

标签: java android mysql jdbc


我试图学习如何使用JDBC将应用程序连接到mysql数据库 我正在使用Android Studio 我从de mysql网站下载了“mysql-connector-java-5.1.37”。
只是为了将“mysql-connector-java-5.1.37-bin.jar”放在Hello World应用程序的libs文件夹中并编译i recive:

  

错误:任务':app:preDexDebug'的执行失败。   com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_45 \ bin \ java.exe''以非完成零退出值1

build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "br.com.myaplication.helloworld"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
}

拜托,帮帮我:) thnx

3 个答案:

答案 0 :(得分:0)

尝试同步您的项目 Tools -> Android -> Sync Project with Gradle Files

然后重建你的项目: build -> rebuild project

答案 1 :(得分:0)

我有同样的问题,问题出在mysql-connector-java-5.1.37.jar文件中。我从here下载了一个旧版本(mysql-connector-java-3.0.17-ga-bin.jar)并且像魅力一样工作。

要使用连接:

Class.forName("com.mysql.jdbc.Driver").newInstance();
String connection = "jdbc:mysql://"+ your_ip + ":"+ your_port +"/"+ database_name;
conn = DriverManager.getConnection(connection, user, pass); 

以防万一,不要忘记在build.gradle中编译它:

dependencies {
    //other stuff
    compile files('libs/mysql-connector-java-3.0.17-ga-bin.jar')
}

PD:仅当您使用来自和AsyncTask

的连接时才有效

答案 2 :(得分:0)

因为分布式mysql-connector-java-5.1.37-bin.jar是为Java1.8编译的,所以当前的Android dex编译器无法识别它。

$ javap -v com/mysql/jdbc/JDBC42Helper.class| grep "major version"
  major version: 52

另一方面,mysql-connector-java-5.1。 36 .jar是为Java1.6编译的。

$ javap -v com/mysql/jdbc/JDBC4Connection.class |grep "major version"
  major version: 50

5.1.37 supports JDBC4.2,因此需要Java1.8。