Как использовать драйвер JDB C (Jaybird) на Android? - PullRequest
0 голосов
/ 02 апреля 2020

Я провел много поисков о том, как подключить приложение android к БД Firebird, но все еще не могу это сделать.

Прежде всего, это мой код для создания соединения:

@NonNull
public static void createConnection() throws SQLException {
    if (connection == null || connection.isClosed()) {
        Properties props = new Properties();

        props.setProperty("user", "###");
        props.setProperty("password", "####");
        props.setProperty("encoding", "UTF8");

        try {
            Class.forName("org.firebirdsql.jdbc.FBDriver");
            connection = DriverManager.getConnection("jdbc:firebirdsql://<HOST>:<PORT>/<DATABASE>.fdb", props);
        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
            Log.e(MY_LOG_TAG, "Falhou ao criar conexão com o Banco! -> " + e.getMessage());
        }
    }
}

Соображения:

  1. Как видно на { ссылка }, JDB C Jaybird (aka. Jaybird-full -4.0.0.java8.jar) не работает на Android:

    java .lang.NoClassDefFoundError: Ошибка разрешения: Ljavax / resource / Referenceable; в java .lang.Class.classForName (собственный метод) в java .lang.Class.forName (Class. java: 454)

Итак, я проверяю ответ ссылка, которая указала мне на решение Android: (https://sourceforge.net/projects/androidjaybird)

Android Jaybird ( последнее обновление 2017-03-30 )

Я скачал Jaybird_2_2_12.aar и очистил свой проект. Установите * .aar как новый модуль (новый модуль> aar> Jaybird_2_2_12.aar) и синхронизируйте c с gradle:

FAILURE: Build failed with an exception.
  • Что пошло не так: выполнение задачи не выполнено ': приложение : mergeLibDexDebug.

    Не удалось разрешить все файлы для конфигурации ': app: debugRuntimeClasspath'. Не удалось преобразовать артефакт 'Jaybird_2_2_12.aar (проект: Jaybird_2_2_12)' для соответствия атрибутам {artifactType = android -dex, dexing-enable-desugaring = true, dexing-is-debuggable = true, dexing-min-sdk = 29, org.gradle.usage = java -runtime}. Выполнение не удалось для DexingNoClasspathTransform: /home/vapstor/Workana/RoyalFarma/Jaybird_2_2_12/build/.transforms/9b92b1a4ee0f4f8ba116c8e17cff3dd0/jetified-Jaybird_2_2_12-un.un Ошибка при дексинге.

также регистрирует меня:

Compatible side by side NDK version was not found. Default is 20.0.5594570.

РЕДАКТИРОВАТЬ:

Я забыл упомянуть что я тоже скачал проект отсюда https://www.firebirdsql.org/en/firebird-3-0/#Android, но похоже, что это установка базы данных firebird на android устройствах, мне нужен только доступ к ней.

...