проблема с Firebird. Я никогда не работал с БД. БД на сервере firebird 1.5.
Добавить lib: 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/AndroidRuntime: FATAL EXCEPTION: main Process: success.kneu, PID: 12219 java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/resource/Referenceable; at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:400) at java.lang.Class.forName(Class.java:326) at success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48) at android.view.View.performClick(View.java:5647) at android.view.View$PerformClick.run(View.java:22465) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) Caused by: java.lang.ClassNotFoundException: javax.resource.Referenceable at java.lang.VMClassLoader.findLoadedClass(Native Method) at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) at java.lang.ClassLoader.loadClass(ClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:400) at java.lang.Class.forName(Class.java:326) at success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48) at android.view.View.performClick(View.java:5647) at android.view.View$PerformClick.run(View.java:22465) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/Referenceable; at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:400) at java.lang.Class.forName(Class.java:326) at success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48) at android.view.View.performClick(View.java:5647) at android.view.View$PerformClick.run(View.java:22465) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.naming.Referenceable" on path: DexPathList[[zip file "/data/app/success.kneu-1/base.apk", zip file "/data/app/success.kneu-1/split_lib_dependencies_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_0_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_1_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_2_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_3_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_4_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_5_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_6_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_7_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_8_apk.apk", zip file "/data/app/success.kneu-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/success.kneu-1/lib/arm64, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:400) at java.lang.Class.forName(Class.java:326) at success.kneu.LoginActivity$onCreate$1.onClick(LoginActivity.kt:48) at android.view.View.performClick(View.java:5647) at android.view.View$PerformClick.run(View.java:22465) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) 2019-07-14 17:37:03.815 12219-12219/? I/Process: Sending signal. PID: 12219 SIG: 9
Если у вас есть firebird-full-2.2.4.jar, это может быть банка из сомнительного источника, потому что нормальное распределение называет это jaybird-full-2.2.4.jar.
Jaybird, JDBC-драйвер Firebird, не работает на Android. Существует Android-порт Jaybird, но команда Jaybird не поддерживает его.
Сама ошибка указывает на проблему с загрузкой connector-api из-за отсутствия классов JNDI, таких как javax.naming.Referenceable в Android. Это будет означать, что вы пытаетесь использовать обычный Jaybird, а не версию Jaybird для Android.
Попробуйте заменить свою зависимость Jaybird на версию из порта Android.
Имейте в виду, что в целом вам не следует использовать драйверы JDBC для подключения к базе данных с Android. См. также JDBC против веб-службы для Android.
«замените свою зависимость Jaybird на одну из порта Android». сбой: не удалось выполнить задачу ':app:desugarDebugFileDependencies'. > Произошел сбой при выполнении com.android.build.gradle.internal.tasks.Workers$ActionFacade > Ошибка при индексировании.
@AcauãPitta Я не участвую в переносе Android и не занимаюсь разработкой для Android, поэтому не могу вам с этим помочь (кстати, сбой сборки не является сбоем). Но я повторяю свой совет: не используйте драйверы JDBC из Android, используйте службу REST в качестве посредника между вашим приложением и базой данных.
Поскольку вы используете JDBC на Android, прочтите: JDBC против веб-службы для Android