![](/img/trans.png)
[英]Android Studio preDexDebug error when compiling MySQL Connector Jar file
[英]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.