我试图学习如何使用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
答案 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。