簡體   English   中英

android JDBC mysql java 連接器應用程序:preDexDebug

[英]android JDBC mysql java connector app:preDexDebug

我正在嘗試學習如何使用 JDBC 將應用程序連接到 MySQL 數據庫。

我正在使用 Android Studio。

我從 MySQL 網站下載了“mysql-connector-java-5.1.37”。

只是為了將“mysql-connector-java-5.1.37-bin.jar”放在Hello World應用程序的libs文件夾中並編譯我收到:

錯誤:任務 ':app:preDexDebug' 執行失敗。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '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'
}

嘗試同步您的項目Tools -> Android -> Sync Project with Gradle Files

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

我有同樣的問題,問題出在 mysql-connector-java-5.1.37.jar 文件中。 我從這里下載了一個舊版本 (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 的連接時才有效

由於分布式 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 支持 JDBC4.2 ,所以需要 Java1.8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM