inflearn logo
강의

Course

Instructor

[Intermediate] Creating a Coin Price Monitoring App (Android Kotlin)

Setting up a local database (Room)

[룸DB 관련 에러] can't open offline database '/data/data/ ...

283

kovihouse4780

3 asked

0

 에러재현

  1. Intro를 통해서 DB를 최초 저장하는 것은 성공

  2. 앱을 재빌드 또는 재실행하면 App Inspection 의 coin_database (closed) 라고 나오는 현상 있음

  3. Database Inspector 관련 에러창도 뜹니다.

 

시도해본 에러 처리

  1. 시뮬레이터 디바이스 변경

  2. 시뮬레이터 디바이스 wipe data 

  3. 실기기에서 [에러재현]과 동일한 방식의 빌드테스트

  4. App Inspector의 [Keep Data Connections Open] 활성화

[프로젝트파일 구글드라이브 링크]

https://drive.google.com/file/d/1a7nJ6Zik7Plpx2UEs7nBKDemQ40qZvpJ/view?usp=sharing

 

왠만하면 검색하여 해결해보려했는데 도저히 이유를 모르겠네요.. 혹시 어떤 문제인지 알고 계신가요?

 

20241008_110740.png

 

20241008_110832.png

 

 

 

android kotlin roomdb

Answer 3

0

bokchi

안녕하세요

동일한 코드를 실행했는데 잘 동작하는것을 확인했습니다.

이게 종종 안드로이드 스튜디오 버전에 따라 안나오는 경우가 있는데

최신 안드로이드 스튜디오를 다운받아서 해보시겠어요?

스크린샷 2024-10-09 오후 4.10.17.png

 

0

kovihouse4780

[1,2,3,4] 에 대한 대안은 적절한 대안은 아닌 것 같습니다. 저 말이 성립하려면 최초에 데이터베이스의 쓰기기능도 구동되지 않았어야 합니다.

[5]에 대해선 두번째 실행 시, MainActivity에서 DB에 아무 접근하지도 않았는데 레이스컨디션이 났고 그것에 의해 DB가 Closed 되었다? 그건 아닌 것 같아요

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 한국가상현실코비온라인님, Room DB 사용 중 발생하는 에러에 대해 설명해 드리겠습니다.

앱을 재빌드하거나 재실행할 때 Room 데이터베이스가 닫혀서 Can't open offline database 오류가 발생하는 문제는 여러 가지 원인에서 발생할 수 있습니다. 아래는 그 중 몇 가지 가능한 원인과 해결 방법입니다.

  1. 데이터베이스 연결 설정 문제: 데이터베이스 초기화가 앱의 Application 클래스에서 제대로 이루어지지 않는 경우가 있습니다. 이 점을 확인하시고, Room.databaseBuilder를 통해 데이터베이스 빌더가 올바르게 사용되고 있는지 확인해 보세요.

  2. 올바른 디바이스 선택: 에러 메시지에서 “Device ‘galaxy21_APL_33 emulator-5554’ not found”라는 문구가 있는 것으로 보아, 가상 디바이스와의 연결이 끊어진 것일 수 있습니다. Android Virtual Device (AVD) 설정에서 에뮬레이터가 올바르게 실행되고 있는지, 그리고 ‘Use same device for future launches’ 설정이 활성화되어 있는지 확인하세요.

  3. 디바이스의 저장 공간 문제: 특정 시나리오에서 디바이스의 저장 공간이 부족한 경우에도 데이터베이스가 제대로 작동하지 않을 수 있습니다. 이 경우 에뮬레이터 설정에서 디스크 공간 및 메모리 설정을 확인해 보세요.

  4. 파일 권한 문제: 에뮬레이터의 파일 시스템에서 데이터베이스 파일에 접근할 권한이 없을 수도 있습니다. 퍼미션 관련 설정을 다시 확인하여 데이터베이스 파일에 대한 접근이 제대로 설정되어 있는지 확인해 주세요.

  5. 레이스 컨디션 문제: 데이터베이스 접근과 관련한 코드에서 다른 쓰레드와의 문제로 인해 레이스 컨디션이 발생할 수 있습니다. 데이터베이스 초기화 및 접근에 관한 모든 코드가 메인 쓰레드에서 문제가 없게 실행되도록 되어 있는지 확인하세요.

현재 문제가 생긴 구체적인 상황을 더 잘 이해하기 위해, 프로젝트 코드 전반을 함께 공유해주시면 인지할 수 있는 데이터베이스 설정 혹은 환경 설정의 문제점을 파악하는 데에 더 도움이 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

빌드가 안 돼요..

0

74

2

압축 폴더 파일이 비어있어요ㅠ

0

1160

2

bottom navigation view 색깔

0

108

1

강의명: 코인 선택화면 Adapater 세팅 (RecyclerView) 에서

0

186

3

6:50분 즈음부터 recycler view 재활용 관련 말이 나오는데

0

168

1

섹션 4 다 완성하고 실행시켜보니 NumberFormatEx이 뜨네요

0

288

2

Notification을 실행했을때

0

817

1

Database Inspector에서 db가 closed 일때

0

425

1

Fragment 에서 다른 Activity로는 Navigation을 사용하지 않나요??

0

253

1

notification 문의드립니다.

0

219

1

풀 소스 코드는 없나요!?

0

314

2

안드로이드버전에 따라 다른것이있을까요?

0

350

2

HTML 코드

0

235

1

BroadcastReceiver가 안됩니다ㅠㅠ

0

506

1

15, 30, 45분 데이터 및 어댑터 오류

0

283

1

_ 사용하시는 이유가 있으실까요?

0

223

1

15, 30, 45 분 데이터가 쌓이지 않습니다.

0

333

1

SQL문 쓰실 때 글자 색깔이 다른데 어떤걸 사용하시는지 알 수 있을까요?

0

217

1

안드로이드13 알림 권한

0

573

1

인트로 화면 세팅에서 질문있습니다.

0

277

1

datastore 관련 질문있습니다.

0

383

1

typeconverter 오류 문의드립니다.

0

385

2

navigation 관련 질문 있습니다

0

326

2

Room 관련한 에러 질문 올려용

0

462

1