gpt4 book ai didi

java - 将 JDBC 导入 Android Studio 错误

转载 作者:行者123 更新时间:2023-11-28 23:33:06 29 4
gpt4 key购买 nike

我目前正在开发一个 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),到目前为止该应用程序至少可以运行。现在将尝试实现该驱动程序并实际使用它进行开发,届时我将发布关于结果的另一个更新。

最佳答案

您不应在 Android 应用程序中使用 JDBC,因为它的目标是高带宽、与数据库服务器的可靠连接,这是您在移动设备上无法实现的。尝试将您的数据库包装在 REST Web 服务中。

我多次读到人们在 Android 中使用 JDBC 时遇到困难,它不是为在 Android 生态系统中使用而构建的。并非每个库都与 Android 完全兼容,您的 gradle 输出表明“dexer”无法将 jar 文件转换为 .dex。

您提供的 gradle 输出显示以下错误:

com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)

参见 this question寻求可能的解决方案。确保您使用正确的 Java SDK 进行构建。

关于java - 将 JDBC 导入 Android Studio 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751150/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com