Android API версии 27 по-прежнему использует SQLite 3.8. Как обновить базу данных SQLite до версии 3.19?

У меня есть один старый проект, который был куплен вместе с SDK для управления доступом и устройством. Мне нужно захватить данные пользователей и отправить в firebase.

Итак, что я сделал, так это сначала обновил версию sdk, потому что она слишком старая (22), и firebase не могла с ней работать, пока я не обновлю.

Короче говоря, код sqlite работал нормально до и после обновления, локальная база данных приводила к сбою приложения, говоря:

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.fgtit.access/com.fgtit.access.MainActivity}: 
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not 
open database

Ниже показано, что такое создание базы данных и управление ею.

    public static boolean IsFileExists(String filename){
        File f=new File(filename);
        if (f.exists()){
            Log.d("UserDB", f.getName());
            return true;
        }
        return false;
    }
    
    public void LoadAll(Context ctx){
        usersList.clear();
        String optionalPath  = "/OnePass/users.db";
        String rootPath = ctx.getExternalFilesDir(optionalPath).getAbsolutePath();
        if (IsFileExists(rootPath )){
            db=SQLiteDatabase.openOrCreateDatabase(rootPath,null);
        }else{
            db=SQLiteDatabase.openOrCreateDatabase(rootPath,null);
            String sql = "CREATE TABLE TB_USERS(userid INTEGER PRIMARY KEY ASC,"
                    + "usertype INTEGER,"
                    + "groupid INTEGER,"
                    + "username CHAR(24),"
                    + "expdate BLOB,"
                    + "enlcon1 BLOB,"
                    + "enlcon2 BLOB,"
                    + "enlcon3 BLOB,"
                    + "fp1 BLOB,"
                    + "fp2 BLOB,"
                    + "fp3 BLOB,"
                    + "enllNO BLOB);";
            
            db.execSQL(sql);
        }

Below is my gradle configuration

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 30

    defaultConfig {
        applicationId "com.fgtit.access"
        versionCode 9
        versionName "2.7"
        minSdkVersion 17
        targetSdkVersion 30
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation files('libs/android-core-3.1.1-SNAPSHOT.jar')
    implementation files('libs/core-3.1.1-SNAPSHOT.jar')
}

Изменилось ли что-нибудь с SDK 22 и что здесь может быть не так?

На какой версии Android пробовали раньше и на какой версии сейчас?

Andrew 16.12.2020 01:16

@Andrew Android версии 6.0. до и после. Есть конкретное устройство, которому это нужно. Все, что я хочу сделать, это изменить, чтобы он мог работать с нашей моделью.

olajide 16.12.2020 03:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
224
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновление до версии API 30 решило проблему.

Другие вопросы по теме