火鸟有问题。我从未与 DB 合作过。服务器 firebird 1.5 上的数据库。
添加库:firebird-full-2.2.4
到 libs 文件夹
将其添加到 Gradle:implementation fileTree('libs')
-
将其添加到 MainActivity 中:
Class.forName("org.firebirdsql.jdbc.FBDriver")
val connection = DriverManager.getConnection(
"jdbc:firebirdsql://jdbc:firebirdsql:193.###.###.13/3050:Scool",
"###", "###")
connection.close()
开始后我有这个:
E/Android运行时:致命
例外:主要
进程:success.kneu,PID:12219
java.lang.NoClassDefFoundError:解析失败:Ljavax/resource/Referenceable;
在 java.lang.Class.classForName(本机方法)
在 java.lang.Class.forName(Class.java:400)
在 java.lang.Class.forName(Class.java:326)
在 success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48)
在 android.view.View.performClick(View.java:5647)
在 android.view.View$PerformClick.run(View.java:22465)
在 android.os.Handler.handleCallback(Handler.java:754)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:163)
在 android.app.ActivityThread.main(ActivityThread.java:6238)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
引起原因:java.lang.ClassNotFoundException:javax.resource.Referenceable
在 java.lang.VMClassLoader.findLoadedClass(本机方法)
在 java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:362)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:312)
在 java.lang.Class.classForName(本机方法)
在 java.lang.Class.forName(Class.java:400)
在 java.lang.Class.forName(Class.java:326)
在 success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48)
在 android.view.View.performClick(View.java:5647)
在 android.view.View$PerformClick.run(View.java:22465)
在 android.os.Handler.handleCallback(Handler.java:754)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:163)
在 android.app.ActivityThread.main(ActivityThread.java:6238)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
引起原因:java.lang.NoClassDefFoundError:解析失败:Ljavax/naming/Referenceable;
在 java.lang.Class.classForName(本机方法)
在 java.lang.Class.forName(Class.java:400)
在 java.lang.Class.forName(Class.java:326)
在 success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48)
在 android.view.View.performClick(View.java:5647)
在 android.view.View$PerformClick.run(View.java:22465)
在 android.os.Handler.handleCallback(Handler.java:754)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:163)
在 android.app.ActivityThread.main(ActivityThread.java:6238)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
导致:java.lang.ClassNotFoundException:在路径上找不到类“javax.naming.Referenceable”:DexPathList[[zip 文件
“/data/app/success.kneu-1/base.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_dependency_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_0_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_1_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_2_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_3_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_4_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_5_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_6_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_7_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_8_apk.apk”,zip 文件
“/data/app/success.kneu-1/split_lib_slice_9_apk.apk”],nativeLibraryDirectories=[/data/app/success.kneu-1/lib/arm64,
/系统/lib64,/供应商/lib64]]
在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:380)
在 java.lang.ClassLoader.loadClass(ClassLoader.java:312)
在 java.lang.Class.classForName(本机方法)
在 java.lang.Class.forName(Class.java:400)
在 java.lang.Class.forName(Class.java:326)
在 success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48)
在 android.view.View.performClick(View.java:5647)
在 android.view.View$PerformClick.run(View.java:22465)
在 android.os.Handler.handleCallback(Handler.java:754)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:163)
在 android.app.ActivityThread.main(ActivityThread.java:6238)
在 java.lang.reflect.Method.invoke(本机方法)
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
2019-07-14 17:37:03.815 12219-12219/? I/Process:发送信号。 PID:
12219 SIG:9
Firebird JDBC 驱动程序 Jaybird 无法在 Android 上运行。有一个Jaybird 的 Android 端口 https://sourceforge.net/projects/androidjaybird/,但它不是由 Jaybird 团队维护的。
该错误本身表明加载时出现问题connector-api
因为缺少 JNDI 类,例如javax.naming.Referenceable
在安卓中。这表明您正在尝试使用普通的 Jaybird,而不是 Jaybird 的 Android 端口。
尝试将您的 Jaybird 依赖项替换为来自 Android 端口的依赖项。
但请注意,通常您不应该使用 JDBC 驱动程序从 Android 连接到数据库。也可以看看Android 的 JDBC 与 Web 服务 https://stackoverflow.com/questions/15853367/jdbc-vs-web-service-for-android.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)