【发布时间】:2016-08-13 13:34:33
【问题描述】:
我目前正在开发一个 Android 应用程序,并且正在尝试从 MySQL 数据库中检索信息。我正在尝试按照教授的指示使用 JDBC,但我一直遇到问题。
我已经安装了 MySQL Connector/ODBC 5.3,为我尝试使用的驱动程序设置了一个 CLASSPATH 环境变量,即“mysql-connector-java-5.1.38-bin.jar”,然后我尝试导入将该 JAR 放入我的项目中。
我尝试通过两种方式导入 JAR,分别是:
文件 > 新建模块 > 导入 .JAR/.AAR 包 > 导入 mysql 连接器 JAR 然后我继续转到文件>项目结构>应用程序>依赖项>添加模块依赖项
我尝试执行此操作的另一种方法是将 JAR 添加到我的项目的“libs”文件夹中,然后按照项目结构路径从文件中添加依赖项。
我正在运行最新版本的 Android Studio 2.0
在执行任一导入步骤时构建成功完成,但是在尝试运行应用程序时出现以下错误:
Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
> JSR/RET are not supported with computeFrames option
我发现与此相关的唯一解决方案是转到 Android Studio 设置并关闭即时运行选项。
这样做后,我收到了以下错误:
Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_77\bin\java.exe'' finished with non-zero exit value 1
以下是我的build.gradle(Module:app):
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
applicationId "com.example.JohnDoe.myapp" //This is not actually the name or the name of the app on there but I changed this for privacy.
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
incremental true
javaMaxHeapSize "2048M"
jumboMode = true
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.2.1'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
compile 'com.android.support:multidex:1.0.1'
compile project(':mysql-connector-java-5.1.38-bin')
}
以下是关闭“即时运行”后整个 gradle 控制台输出的链接:pastebin.com/5kj6Cgeb
请告诉我从这里去哪里让 JDBC 驱动程序正常工作,这样我才能完成这个项目。感谢您的宝贵时间。
更新 1:显然最新的 JDBC 驱动程序与 Android 不完全兼容并导致问题。我安装并导入了以前的版本(5.0.8),到目前为止,该应用程序至少可以运行。现在将尝试实现驱动程序并实际使用它进行开发,届时我将发布另一个关于结果的更新。
【问题讨论】:
-
你会提供 gradle 控制台输出吗?
-
我提供的错误来自 gradle 控制台。我应该在整个输出中添加评论吗?
-
一个 gist 或 pastebin 会更适合这么多的文字,你也可以编辑你的问题。
-
以下是关闭“即时运行”后整个 gradle 控制台输出的链接:pastebin.com/5kj6Cgeb