android JDBC mysql java连接器应用程序:preDexDebug

android JDBC mysql java连接器应用程序:preDexDebug,java,android,mysql,jdbc,Java,Android,Mysql,Jdbc,我试图学习如何使用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

我试图学习如何使用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'
}
dependencies {
    //other stuff
    compile files('libs/mysql-connector-java-3.0.17-ga-bin.jar')
}
尝试同步您的项目
Tools->Android->与Gradle文件同步项目

然后重建项目:
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中编译它:

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'
}
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

,因此需要Java1.8。

如何构建项目?使用渐变构建?你应该试试gradle clean build!我只需按下android studio的运行按钮。我该怎么做?(对不起,我是新手)请不要为真正的项目这样做:@MorrisonChang thx寻求帮助,但我在使用webservice时也遇到了问题哈哈哈哈..我也有同样的问题。有人找到解决方案了吗?您在构建项目时出现了错误?你能在建筑时张贴完整的毕业日志吗是的,在建筑时。。此处不适合,但此处开始出现错误:app:processDebugJavaRes最新:app:CompiledBugJavaWithJavaC最新:app:CompiledBugNDK最新:app:CompiledBugSources最新:app:preDexDebug AGPBI:{“种类”:“简单”,“文本”:“警告:忽略匿名内部类的InnerClasses属性”,“源”:[{}]}}AGPBI:{“种类”:“简单”,“文本”:”(com.mysql.jdbc.Connection$1),它不带“,”sources“:[{}]}AGPBI:{”kind“:”simple“,”text“:”关联的封闭方法属性。