Я создаю мобильное приложение и пытаюсь подключить его к базе данных MySql, размещенной на моем локальном хосте.В основном пользователь заполняет некоторую информацию и отправляет заявку.Билет должен быть вставлен в базу данных, но вместо этого я получаю сообщение об ошибке.Приложение продолжает работать (поэтому оно не приводит к сбою приложения), но запрос никогда не запускается.
Я попытался очистить и восстановить проект Android Studio.Я также пытался аннулировать кэш и перезапустить.Я попытался добавить некоторый код в мой файл app.build, но он тоже не работал.
Используемый код:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
// Skip multidex because it follows a different versioning pattern.
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.0'
}
}
}
}
Это мое сообщение об ошибке:
Rejecting re-init on previously-failed class java.lang.Class<com.mysql.cj.MysqlType>: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/SQLType;
at com.mysql.cj.jdbc.DatabaseMetaData com.mysql.cj.jdbc.DatabaseMetaData.getInstance(com.mysql.cj.jdbc.JdbcConnection, java.lang.String, boolean, com.mysql.cj.jdbc.result.ResultSetFactory) (DatabaseMetaData.java:729)
at java.sql.DatabaseMetaData com.mysql.cj.jdbc.ConnectionImpl.getMetaData(boolean, boolean) (ConnectionImpl.java:1175)
at void com.mysql.cj.jdbc.ConnectionImpl.<init>(com.mysql.cj.conf.HostInfo) (ConnectionImpl.java:447)
at com.mysql.cj.jdbc.JdbcConnection com.mysql.cj.jdbc.ConnectionImpl.getInstance(com.mysql.cj.conf.HostInfo) (ConnectionImpl.java:240)
at java.sql.Connection com.mysql.cj.jdbc.NonRegisteringDriver.connect(java.lang.String, java.util.Properties) (NonRegisteringDriver.java:207)
at java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties, java.lang.ClassLoader) (DriverManager.java:569)
at java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String) (DriverManager.java:219)
at void com.example.vanda.agrivolution.MySqlUsage.submitTicket(java.lang.String[]) (MySqlUsage.java:17)
at void com.example.vanda.agrivolution.SubmitIssue.addToList() (SubmitIssue.java:130)
at void com.example.vanda.agrivolution.SubmitIssue.access$100(com.example.vanda.agrivolution.SubmitIssue) (SubmitIssue.java:19)
at void com.example.vanda.agrivolution.SubmitIssue$2.onClick(android.view.View) (SubmitIssue.java:73)
at boolean android.view.View.performClick() (View.java:6597)
at boolean android.view.View.performClickInternal() (View.java:6574)
at boolean android.view.View.access$3100(android.view.View) (View.java:778)
at void android.view.View$PerformClick.run() (View.java:25885)
at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:873)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:99)
at void android.os.Looper.loop() (Looper.java:193)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6669)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:493)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:858)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.sql.SQLType" on path: DexPathList[[zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/base.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_resources_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.vanda.agrivolution-Rtbi1zkpK7mJXfDWkDIjHg==/split_lib_slice_5_apk
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at com.mysql.cj.jdbc.DatabaseMetaData com.mysql.cj.jdbc.DatabaseMetaData.getInstance(com.mysql.cj.jdbc.JdbcConnection, java.lang.String, boolean, com.mysql.cj.jdbc.result.ResultSetFactory) (DatabaseMetaData.java:729)
at java.sql.DatabaseMetaData com.mysql.cj.jdbc.ConnectionImpl.getMetaData(boolean, boolean) (ConnectionImpl.java:1175)
at void com.mysql.cj.jdbc.ConnectionImpl.<init>(com.mysql.cj.conf.HostInfo) (ConnectionImpl.java:447)
at com.mysql.cj.jdbc.JdbcConnection com.mysql.cj.jdbc.ConnectionImpl.getInstance(com.mysql.cj.conf.HostInfo) (ConnectionImpl.java:240)
at java.sql.Connection com.mysql.cj.jdbc.NonRegisteringDriver.connect(java.lang.String, java.util.Properties) (NonRegisteringDriver.java:207)
at java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties, java.lang.ClassLoader) (DriverManager.java:569)
at java.sql.Connection java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String) (DriverManager.java:219)
at void com.example.vanda.agrivolution.MySqlUsage.submitTicket(java.lang.String[]) (MySqlUsage.java:17)
at void com.example.vanda.agrivolution.SubmitIssue.addToList() (SubmitIssue.java:130)
at void com.example.vanda.agrivolution.SubmitIssue.access$100(com.example.vanda.agrivolution.SubmitIssue) (SubmitIssue.java:19)
at void com.example.vanda.agrivolution.SubmitIssue$2.onClick(android.view.View) (SubmitIssue.java:73)
at boolean android.view.View.performClick() (View.java:6597)
at boolean android.view.View.performClickInternal() (View.java:6574)
at boolean android.view.View.access$3100(android.view.View) (View.java:778)
at void android.view.View$PerformClick.run() (View.java:25885)
at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:873)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:99)
at void android.os.Looper.loop() (Looper.java:193)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6669)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:493)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:858)
Я также добавил драйвер mysql в мою структуру проекта в Android Studio.Вы можете увидеть это в нижней части окна на рисунке ниже.
Я ожидал, что он будет загружен в базу данных, и еслиЯ запустил оператор select all, я смог бы увидеть его в базе данных, но вместо этого все, что у меня есть, это пустая база данных.