2015-10-17 20 views
3


我試着去學習如何使用JDBC的應用程序連接到MySQL數據庫。
我正在使用Android Studio。
我從de mysql網站下載了「mysql-connector-java-5.1.37」。
只是爲了把 「使用mysql-connector-java的5.1.37-bin.jar」 在Hello World應用程序的libs文件夾和編譯我recive:Android的JDBC MySQL的Java連接器應用:preDexDebug

Error:Execution failed for task ':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'' finished with non-zero exit value 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

+0

你如何建立你的項目?使用gradle構建?你應該嘗試gradle clean build! – Tobi

+0

我只需按下android studio的運行按鈕。我怎麼做? (抱歉,即時通訊在這個新) – phtoxa

+1

請不要用於實際的項目做到這一點:爲幫助http://stackoverflow.com/questions/15853367/jdbc-vs-web-service-for-android –

回答

0

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

然後重建您項目: build -> rebuild project

+0

感謝,但沒有工作,得到了同樣的錯誤.. – phtoxa

+0

你得到,同時建立項目您發佈的錯誤?建設時可以發佈完整的gradle日誌 – Tobi

+0

是的,而建設..不適合在這裏,但在這裏啓動bug:app:processDebugJavaRes UP-TO-DATE :app:compileDebugJavaWithJavac最新日期 :app:compileDebugNdk UP -TO-DATE :app:compileDebugSources UP-TO-DATE :app:preDexDebug AGPBI:{「kind」:「simple」,「text」:「warning:忽略匿名內部類的InnerClasses屬性」,「sources 「:[{}]} AGPBI:{」 種類 「:」 簡單 「 」文本「:」(com.mysql.jdbc。連接$ 1),它不會帶有「,」來源「:[{}]}AGPBI:{」kind「:」simple「,」text「:」關聯的EnclosingMethod屬性。 – phtoxa

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

0

由於分佈式MySQL的連接器的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。 .jar是爲Java1.6編譯的。

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

5.1.37 supports JDBC4.2,所以需要Java1.8。