앱이 시작될 때 데이터베이스를 찾을 수 없습니다.

Bugdr0id

내 자신의 SQLite 데이터베이스, Android 및 greenDAO 생성기를 사용하여 내 Android 앱에 대한 클래스를 생성하는 간단한 예제를 수행하려고합니다.

내 데이터베이스 파일은 다음과 같이 정의됩니다.

1) 다음 구조로 "OneTableDB"(확장자 없음, SQLite 3)라는 데이터베이스를 만듭니다.

개체 : 교수

  • professorID : 기본 키
  • 이름 : 텍스트
  • 나이 : 정수

항목 : android_metadata

  • 로케일 : 텍스트

그런 다음 android_metadata를 'en_US'값으로 채웠고 엔티티에는 행이 거의 없습니다.

2) 내 Android 앱 구조에 위치 : proj_root / databases / 데이터베이스 파일의 전체 경로 : proj_root / databases / OneTableDB

3) 데이터베이스가 있는지 여부를 확인하는 방법이 있습니다 (제 경우에는 데이터베이스 폴더 안에 배치했기 때문에 존재해야 함)

private boolean databaseExists() {
    SQLiteDatabase sqliteDatabase = null;
    try {
        String databasePath = DB_PATH + DB_NAME;

        File f = new File(DB_PATH + DB_NAME);
        f.exists();

        sqliteDatabase = SQLiteDatabase.openDatabase(databasePath, null,
                SQLiteDatabase.OPEN_READONLY);
    } catch (SQLiteException e) {
        e.printStackTrace();
    }

    if (sqliteDatabase != null) {
        sqliteDatabase.close();
    }
    return sqliteDatabase != null ? true : false;
}

//DB_PATH = /data/data/com.myapp.android_dao_tests/databases/

//DB_NAME = OneTableDB

f.exists ()에서 디버깅하면 false 값을 반환 한 다음 중단됩니다.

sqliteDatabase = SQLiteDatabase.openDatabase(databasePath, null,
                SQLiteDatabase.OPEN_READONLY);

디버깅하는 동안 경로가 올바른지 확인하기 위해 adb 셸을 사용했으며 실제로 /data/data/com.myapp.android_dao_tests/로 이동할 수 있으며 데이터베이스 폴더가 없습니다!

이 문제를 어떻게 해결할 수 있습니까?

미리 감사드립니다.

PaF

DB "템플릿"은 apk에 번들링 될 수 있도록 assets / 폴더에 저장됩니다. 그런 다음 코드는 자산 /에서 데이터베이스 /로 DB를 복사하여 일반 SQLite DB로 액세스 할 수 있도록합니다.

추가 조사 결과, 안드로이드는 새로운 DB를 자신의 것으로 인정하지 않는 것 같습니다. 분명히 내장 된 DB 메커니즘은 이러한 방식으로 사용되지 않았습니다.

접근하는 올바른 방법은 데이터를 assets /에 텍스트 형식으로 유지하는 것입니다. 앱이 시작되고 DB가 없음을 발견하면 스키마 자체를 생성하고 자산 / 폴더.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

QML 앱을 배포 할 때 SQLite 데이터베이스를 찾을 수 없음

분류에서Dev

QML 앱을 배포 할 때 SQLite 데이터베이스를 찾을 수 없음

분류에서Dev

Django는 docker-compose를 사용할 때 데이터베이스를 찾을 수 없습니다.

분류에서Dev

PHP : 데이터베이스를 찾을 수 없습니다.

분류에서Dev

앱이로드 될 때 처음에 작업을 전달할 수 없습니다.

분류에서Dev

데이터베이스에 값을 삽입 할 때 ORM을 사용하면 오류-> "클래스 'App \ Http \ Controllers \ User'를 찾을 수 없음"을 표시합니다.

분류에서Dev

Homebrew MariaDB 10.4.13 찾을 수 없음-10.5.5로 강제 업데이트되었으며 이제 데이터베이스를 시작할 수 없습니다.

분류에서Dev

MySQL 작업을 시작할 수 없음-오류를 찾을 수 없습니다. 데이터베이스가 필요합니다.

분류에서Dev

데이터베이스를 찾을 수 없을 때 영향을받은 데이터베이스를 찾으십니까?

분류에서Dev

C에서 프로그램 데이터베이스를 닫을 때 업데이트 할 수 없습니다.

분류에서Dev

Realm은 앱이 실행될 때마다 새로운 데이터베이스를 시작합니다

분류에서Dev

데이터베이스 오류 : "저장 프로 시저 'sp_insert"를 찾을 수 없습니다.

분류에서Dev

시스템 업데이트를 시도 할 때 "E : 패키지 업데이트를 찾을 수 없습니다."

분류에서Dev

시스템 업데이트를 시도 할 때 "E : 패키지 업데이트를 찾을 수 없습니다."

분류에서Dev

앱을 다시 시작할 때 SQLite 데이터베이스를 지우는 방법은 무엇입니까?

분류에서Dev

응용 프로그램의 서버 오류-데이터베이스에 이미지를 추가하려고 할 때 리소스를 찾을 수 없습니다.

분류에서Dev

내 데이터베이스 시스템이 asp.net에 지정된 파일을 찾을 수 없습니다.

분류에서Dev

mysql 데이터베이스에서 값을 찾을 수 없을 때 메시지 표시

분류에서Dev

DDMS에서 데이터베이스를 찾을 수 없습니다.

분류에서Dev

팩맨은 데이터베이스를 찾을 수 없습니다

분류에서Dev

SQL Server Management Studio에서 데이터베이스를 찾을 수 없습니다.

분류에서Dev

데이터베이스에 성공적으로 게시 할 때 경고 ()를 발생시킬 수 없습니다.

분류에서Dev

게시 할 때 오류 메타 데이터 파일 dll을 CSC를 찾을 수 없습니다.

분류에서Dev

앱이 flutter에서 시작될 때 사용자 위치를 가져올 수 없습니다.

분류에서Dev

VM이 시작될 때 VMware Player / Workstation 14-16에서 메뉴 표시 줄을 사용할 수 없습니다.

분류에서Dev

laravel에서 슬러그로 데이터를 표시 할 때 404를 찾을 수 없습니다.

분류에서Dev

로컬에서 작동하는 Shiny 앱은 데이터 프레임을 찾을 수 없기 때문에 shinyapps.io에 배포 할 수 없습니다.

분류에서Dev

데이터베이스를 열 수 없습니다. .NET 앱을 설치하는 동안 SQL Server 데이터베이스를 만들 때 사용자 오류로 인해 로그인하지 못했습니다.

분류에서Dev

입력을 처리 할 때 잘못된 데이터가 발견되었습니다. 시작 코드를 찾을 수 없습니다.

Related 관련 기사

  1. 1

    QML 앱을 배포 할 때 SQLite 데이터베이스를 찾을 수 없음

  2. 2

    QML 앱을 배포 할 때 SQLite 데이터베이스를 찾을 수 없음

  3. 3

    Django는 docker-compose를 사용할 때 데이터베이스를 찾을 수 없습니다.

  4. 4

    PHP : 데이터베이스를 찾을 수 없습니다.

  5. 5

    앱이로드 될 때 처음에 작업을 전달할 수 없습니다.

  6. 6

    데이터베이스에 값을 삽입 할 때 ORM을 사용하면 오류-> "클래스 'App \ Http \ Controllers \ User'를 찾을 수 없음"을 표시합니다.

  7. 7

    Homebrew MariaDB 10.4.13 찾을 수 없음-10.5.5로 강제 업데이트되었으며 이제 데이터베이스를 시작할 수 없습니다.

  8. 8

    MySQL 작업을 시작할 수 없음-오류를 찾을 수 없습니다. 데이터베이스가 필요합니다.

  9. 9

    데이터베이스를 찾을 수 없을 때 영향을받은 데이터베이스를 찾으십니까?

  10. 10

    C에서 프로그램 데이터베이스를 닫을 때 업데이트 할 수 없습니다.

  11. 11

    Realm은 앱이 실행될 때마다 새로운 데이터베이스를 시작합니다

  12. 12

    데이터베이스 오류 : "저장 프로 시저 'sp_insert"를 찾을 수 없습니다.

  13. 13

    시스템 업데이트를 시도 할 때 "E : 패키지 업데이트를 찾을 수 없습니다."

  14. 14

    시스템 업데이트를 시도 할 때 "E : 패키지 업데이트를 찾을 수 없습니다."

  15. 15

    앱을 다시 시작할 때 SQLite 데이터베이스를 지우는 방법은 무엇입니까?

  16. 16

    응용 프로그램의 서버 오류-데이터베이스에 이미지를 추가하려고 할 때 리소스를 찾을 수 없습니다.

  17. 17

    내 데이터베이스 시스템이 asp.net에 지정된 파일을 찾을 수 없습니다.

  18. 18

    mysql 데이터베이스에서 값을 찾을 수 없을 때 메시지 표시

  19. 19

    DDMS에서 데이터베이스를 찾을 수 없습니다.

  20. 20

    팩맨은 데이터베이스를 찾을 수 없습니다

  21. 21

    SQL Server Management Studio에서 데이터베이스를 찾을 수 없습니다.

  22. 22

    데이터베이스에 성공적으로 게시 할 때 경고 ()를 발생시킬 수 없습니다.

  23. 23

    게시 할 때 오류 메타 데이터 파일 dll을 CSC를 찾을 수 없습니다.

  24. 24

    앱이 flutter에서 시작될 때 사용자 위치를 가져올 수 없습니다.

  25. 25

    VM이 시작될 때 VMware Player / Workstation 14-16에서 메뉴 표시 줄을 사용할 수 없습니다.

  26. 26

    laravel에서 슬러그로 데이터를 표시 할 때 404를 찾을 수 없습니다.

  27. 27

    로컬에서 작동하는 Shiny 앱은 데이터 프레임을 찾을 수 없기 때문에 shinyapps.io에 배포 할 수 없습니다.

  28. 28

    데이터베이스를 열 수 없습니다. .NET 앱을 설치하는 동안 SQL Server 데이터베이스를 만들 때 사용자 오류로 인해 로그인하지 못했습니다.

  29. 29

    입력을 처리 할 때 잘못된 데이터가 발견되었습니다. 시작 코드를 찾을 수 없습니다.

뜨겁다태그

보관