• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

코드 완성 후 갤러리 이미지 안보임

23.05.18 17:17 작성 조회수 606

0

noImage.png

전체 코드 작성 후 빌드하면 볼 수 있는 에뮬레이터 화면입니다.

 

아무것도 노출이 안되는 텅 빈 화면만 보입니다.

 

어떤 문제가 있어 그런지 알 수 가 없어 문의 남깁니다!

답변 2

·

답변을 작성해보세요.

0

로그는 에러가 난 부분만 공유주시면 되는데 로그에 에러가 없는 것 같은데 맞나요.

기기에서 내보내는 에러 말고 우리가 작성한 코드에서의 에러만 보면 됩니다.

방금 코드 내려받아서 실행해 봤을 때 잘 되는것 확인이 되는데요.

혹시 기기에 사진이 없는 것은 아닌지, 없다면 내장 카메라로 사진 몇 장 찍어주시고요.

앱을 다시 실행해 보시기 바랍니다.

admin님의 프로필

admin

질문자

2023.05.20

네! 다시 확인해보았습니다.

아래와 같이 오류는 몇 개 보이는 데 앱 실행하는데 문제가 되는 오류는 아닌 것 같습니다.

image

조언주신대로 아래와 같이 에뮬레이터에 이미지를 저장해서 실행해보았습니다.

image

아래 이미지와 같이 에뮬레이터에 설치된 카메라로 찍은 이미지는 잘 보이는데 외부에서 업로드한 이미지는 보이지 않고 인디케이터만 생성되어서 슬라이드 됩니다.

image
image

추가적으로, coil 라이브러리와 pager 라이브러리 버전이 아래와 같을 때,

val pagerVersion = "0.30.1"
val coilVersion = "2.3.0"
// Pager
implementation("com.google.accompanist:accompanist-pager:$pagerVersion")
// Pager indicators
implementation("com.google.accompanist:accompanist-pager-indicators:$pagerVersion")

// coil
implementation("io.coil-kt:coil-compose:$coilVersion")

rememberImagePainter 함수는 rememberAsyncImagePainter 로 변경하고

painter = rememberAsyncImagePainter(
    model = ImageRequest.Builder(LocalContext.current)
        .data(photoUris[pageIndex])
        .size(Size.ORIGINAL)
        .build()
),

HorizontalPagerIndicator 함수는 파라미터로 pageCount 를 추가해주어야 오류가 나지 않습니다.

HorizontalPagerIndicator(
    pagerState = pagerState,
    pageCount = photoUris.size,
    modifier = Modifier
        .align(Alignment.CenterHorizontally)
        .padding(16.dp),
)

안드로이드의 미디어 시스템은 사진이나 영상이 작성되었을 때 media scan 이라는 동작이 특정 시점에 실행되어 db로 미디어 정보가 관리됩니다.

이 내용을 토대로 사진앱에서 사진이나 영상을 읽어올 수 가 있습니다. 우리가 만든 앱도 결국 미디어 db의 정보를 토대로 정보를 얻어옵니다.

에뮬레이터에 임의로 사진을 업로드하는 경우에 바로 media scan 이 되지 않아서 앱에서 사진 정보를 읽을 수 없는 타이밍이 생긴 것 같습니다.

에뮬을 재시작하면 부팅시 media scan 이 동작해서 아마도 잘 보일 것입니다.

일반적인 폰 사용시에는 발생할 수 없는 상황이기 때문에 코드는 정상이라고 보시면 되겠습니다.

추가적으로 강의에서 다룬 Pager 라이브러리는 deprecated 되었더라고요.

공식 Pager 링크를 첨부합니다.

https://developer.android.com/jetpack/compose/layouts/pager

admin님의 프로필

admin

질문자

2023.05.22

네! media scan 내용도 한번 더 확인해보겠습니다.

Jetpack compose 를 처음 진행하지만 강의 보면서 많은 도움이 되고 있습니다.

0

Logcat 에 로그 확인 가능할까요

admin님의 프로필

admin

질문자

2023.05.19

안녕하세요!

image첫 번째 화면 Logcat 내용

2023-05-19 00:09:12.586 1654-1700 InputDispatcher system_process E channel 'b53eae8 com.example.app_electronicgallery/com.example.app_electronicgallery.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

2023-05-19 00:09:12.589 1654-1666 GraphicsStats system_process D Buffer count: 3

2023-05-19 00:09:12.589 1654-2189 WindowState system_process I WIN DEATH: Window{b53eae8 u0 com.example.app_electronicgallery/com.example.app_electronicgallery.MainActivity}

2023-05-19 00:09:12.589 1654-2189 InputDispatcher system_process W Attempted to unregister already unregistered input channel 'b53eae8 com.example.app_electronicgallery/com.example.app_electronicgallery.MainActivity (server)'

2023-05-19 00:09:12.670 1749-2209 EGL_emulation com.android.systemui D eglMakeCurrent: 0xaa908160: ver 2 0 (tinfo 0xb2a5de30)

2023-05-19 00:09:12.671 1749-2209 Surface com.android.systemui E getSlotFromBufferLocked: unknown buffer: 0xa09e8b40

2023-05-19 00:09:12.725 2022-2175 EGL_emulation com.android.launcher3 D eglMakeCurrent: 0xae494660: ver 2 0 (tinfo 0xae492480)

2023-05-19 00:09:13.271 2022-2175 OpenGLRenderer com.android.launcher3 W Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...

2023-05-19 00:09:13.271 2022-2175 OpenGLRenderer com.android.launcher3 W Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer...

2023-05-19 00:09:17.249 1989-2442 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.icing.service.IcingGcmTaskService started execution. cause:4 exec_start_elapsed_seconds: 1146 [CONTEXT service_id=218 ]

2023-05-19 00:09:17.259 1989-3046 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.icing.service.IcingGcmTaskService finished executing. cause:4 result: 1 elapsed_millis: 41 uptime_millis: 41 exec_start_elapsed_seconds: 1146 [CONTEXT service_id=218 ]

2023-05-19 00:09:25.837 1749-1749 PhoneStatusBar com.android.systemui D disable: < expand ICONS* alerts SYSTEM_INFO* back home recent clock search quick_settings >

2023-05-19 00:09:25.868 1749-2209 Surface com.android.systemui E getSlotFromBufferLocked: unknown buffer: 0xb403cf80

2023-05-19 00:09:25.885 1749-2209 EGL_emulation com.android.systemui D eglMakeCurrent: 0xaa908160: ver 2 0 (tinfo 0xb2a5de30)

2023-05-19 00:09:27.118 1654-1666 InputMetho...gerService system_process W Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@777c266 attribute=null, token = android.os.BinderProxy@66c02f0

2023-05-19 00:09:27.152 1749-1749 PhoneStatusBar com.android.systemui D disable: < expand icons* alerts system_info* back home recent clock search quick_settings >

2023-05-19 00:09:27.173 1749-2209 EGL_emulation com.android.systemui D eglMakeCurrent: 0xaa908160: ver 2 0 (tinfo 0xb2a5de30)

2023-05-19 00:09:27.175 1749-2209 Surface com.android.systemui E getSlotFromBufferLocked: unknown buffer: 0xb403cf80

2023-05-19 00:09:27.181 1749-2209 EGL_emulation com.android.systemui D eglMakeCurrent: 0xaa908160: ver 2 0 (tinfo 0xb2a5de30)

2023-05-19 00:10:00.061 1252-1303 hwcomposer pid-1252 D hw_composer sent 472 syncs in 73s

2023-05-19 00:10:31.430 1654-1669 UsageStatsService system_process I User[0] Flushing usage stats to disk

2023-05-19 00:11:00.049 1252-1303 hwcomposer pid-1252 D hw_composer sent 4 syncs in 60s

2023-05-19 00:11:07.437 1989-2467 ProcessReaper com.google.android.gms.persistent W Memory state is: 200

 

두 번째 화면

image

'허용' 클릭 후 빈 화면 노출 Logcat 내용

2023-05-19 09:17:44.821 6301-6301 Finsky:background com.android.vending I [1] rjm.onDestroy(-1): IPC-SERVER: Stopping gRPC host service...

2023-05-19 09:17:44.821 1898-6918 ActivityManager system_process I Killing 6222:com.google.process.gapps/u0a1 (adj 906): empty #5

2023-05-19 09:17:44.837 1898-6918 ActivityManager system_process D cleanUpApplicationRecord -- 6222

2023-05-19 09:17:45.166 6650-6650 Finsky com.android.vending I [1] yva.onStartJob(4): SCH: job service start with id 9998.

2023-05-19 09:17:45.174 2061-6771 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.checkin.CheckinService started execution. cause:4 exec_start_elapsed_seconds: 264 [CONTEXT service_id=218 ]

2023-05-19 09:17:45.175 2061-6461 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.checkin.CheckinService finished executing. cause:4 result: 3 elapsed_millis: 5 uptime_millis: 5 exec_start_elapsed_seconds: 264 [CONTEXT service_id=218 ]

2023-05-19 09:17:45.207 6650-6735 Finsky com.android.vending I [470] ytn.a(45): SCH: Satisfied jobs for 9998 are: 12-1

2023-05-19 09:17:45.208 6650-6871 Finsky com.android.vending I [490] yso.accept(66): SCH: Job 12-1 starting

2023-05-19 09:17:45.208 6650-6650 Finsky com.android.vending I [1] ContentSyncJob.v(3): [ContentSync] job started

2023-05-19 09:17:45.224 2061-6771 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.gcm.gmsproc.GcmInGmsTaskService started execution. cause:5 exec_start_elapsed_seconds: 264 [CONTEXT service_id=218 ]

2023-05-19 09:17:45.225 6650-6655 art com.android.vending I Do partial code cache collection, code=246KB, data=211KB

2023-05-19 09:17:45.232 6650-6655 art com.android.vending I After code cache collection, code=246KB, data=215KB

2023-05-19 09:17:45.232 6650-6655 art com.android.vending I Increasing code cache capacity to 1024KB

2023-05-19 09:17:45.240 2061-2077 AuthPII com.google.android.gms.persistent E [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. App: com.google.android.gms, Service: oauth2:https://www.googleapis.com/auth/gcm

aabs: Long live credential not available.

at kvn.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):8)

at kvt.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):3)

at kua.l(:com.google.android.gms@224312023@22.43.12 (040800-483592595):47)

at gjc.m(:com.google.android.gms@224312023@22.43.12 (040800-483592595):35)

at gjc.e(:com.google.android.gms@224312023@22.43.12 (040800-483592595):77)

at gjc.h(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at gjc.ep(:com.google.android.gms@224312023@22.43.12 (040800-483592595):6)

at gfu.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):5)

at android.os.Binder.transact(Binder.java:499)

at gmt.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at android.os.Binder.transact(Binder.java:499)

at alln.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):17)

at android.os.Binder.execTransact(Binder.java:565)

2023-05-19 09:17:45.240 2061-2077 AuthPII com.google.android.gms.persistent E Message is Long live credential not available.

aabs: Long live credential not available.

at kvn.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):8)

at kvt.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):3)

at kua.l(:com.google.android.gms@224312023@22.43.12 (040800-483592595):47)

at gjc.m(:com.google.android.gms@224312023@22.43.12 (040800-483592595):35)

at gjc.e(:com.google.android.gms@224312023@22.43.12 (040800-483592595):77)

at gjc.h(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at gjc.ep(:com.google.android.gms@224312023@22.43.12 (040800-483592595):6)

at gfu.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):5)

at android.os.Binder.transact(Binder.java:499)

at gmt.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at android.os.Binder.transact(Binder.java:499)

at alln.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):17)

at android.os.Binder.execTransact(Binder.java:565)

2023-05-19 09:17:45.240 2061-2077 Auth com.google.android.gms.persistent W [GetToken] GetToken failed with status code: BadAuthentication

2023-05-19 09:17:45.240 2061-2832 AuthPII com.google.android.gms.persistent E [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. App: com.android.vending, Service: oauth2:https://www.googleapis.com/auth/googleplay

aabs: Long live credential not available.

at kvn.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):8)

at kvt.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):3)

at kua.l(:com.google.android.gms@224312023@22.43.12 (040800-483592595):47)

at gjc.m(:com.google.android.gms@224312023@22.43.12 (040800-483592595):35)

at gjc.e(:com.google.android.gms@224312023@22.43.12 (040800-483592595):77)

at gjc.h(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at ksj.getAuthToken(:com.google.android.gms@224312023@22.43.12 (040800-483592595):49)

at android.accounts.AbstractAccountAuthenticator$Transport.getAuthToken(AbstractAccountAuthenticator.java:244)

at android.accounts.IAccountAuthenticator$Stub.onTransact(IAccountAuthenticator.java:113)

at android.os.Binder.transact(Binder.java:499)

at gmt.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at android.os.Binder.transact(Binder.java:499)

at alln.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):17)

at android.os.Binder.execTransact(Binder.java:565)

2023-05-19 09:17:45.240 2061-2832 AuthPII com.google.android.gms.persistent E Message is Long live credential not available.

aabs: Long live credential not available.

at kvn.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):8)

at kvt.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):3)

at kua.l(:com.google.android.gms@224312023@22.43.12 (040800-483592595):47)

at gjc.m(:com.google.android.gms@224312023@22.43.12 (040800-483592595):35)

at gjc.e(:com.google.android.gms@224312023@22.43.12 (040800-483592595):77)

at gjc.h(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at ksj.getAuthToken(:com.google.android.gms@224312023@22.43.12 (040800-483592595):49)

at android.accounts.AbstractAccountAuthenticator$Transport.getAuthToken(AbstractAccountAuthenticator.java:244)

at android.accounts.IAccountAuthenticator$Stub.onTransact(IAccountAuthenticator.java:113)

at android.os.Binder.transact(Binder.java:499)

at gmt.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at android.os.Binder.transact(Binder.java:499)

at alln.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):17)

at android.os.Binder.execTransact(Binder.java:565)

2023-05-19 09:17:45.240 2061-2832 Auth com.google.android.gms.persistent W [GetToken] GetToken failed with status code: BadAuthentication

2023-05-19 09:17:45.244 2621-3721 Auth com.google.android.gms W [GoogleAuthUtil] isUserRecoverableError status: BAD_AUTHENTICATION

2023-05-19 09:17:45.244 2621-3721 GCM-GMS com.google.android.gms I Failed to subscribe to group.

com.google.android.gms.auth.UserRecoverableAuthException: BadAuthentication

at kqd.D(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at kqd.s(:com.google.android.gms@224312023@22.43.12 (040800-483592595):3)

at kpw.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):5)

at kqd.G(:com.google.android.gms@224312023@22.43.12 (040800-483592595):4)

at kqd.I(:com.google.android.gms@224312023@22.43.12 (040800-483592595):10)

at kqd.w(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at kqd.v(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at kpt.f(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at amhl.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):22)

at com.google.android.gms.gcm.gmsproc.GcmInGmsTaskChimeraService.a(:com.google.android.gms@224312023@22.43.12 (040800-483592595):20)

at ashd.call(:com.google.android.gms@224312023@22.43.12 (040800-483592595):4)

at java.util.concurrent.FutureTask.run(FutureTask.java:237)

at abce.c(:com.google.android.gms@224312023@22.43.12 (040800-483592595):6)

at abce.run(:com.google.android.gms@224312023@22.43.12 (040800-483592595):7)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at abhk.run(:com.google.android.gms@224312023@22.43.12 (040800-483592595):0)

at java.lang.Thread.run(Thread.java:761)

2023-05-19 09:17:45.244 2061-2832 GLSActivity com.google.android.gms.persistent W

com.google.android.gms.auth.UserRecoverableAuthException: BadAuthentication

at ksj.getAuthToken(:com.google.android.gms@224312023@22.43.12 (040800-483592595):56)

at android.accounts.AbstractAccountAuthenticator$Transport.getAuthToken(AbstractAccountAuthenticator.java:244)

at android.accounts.IAccountAuthenticator$Stub.onTransact(IAccountAuthenticator.java:113)

at android.os.Binder.transact(Binder.java:499)

at gmt.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):2)

at android.os.Binder.transact(Binder.java:499)

at alln.onTransact(:com.google.android.gms@224312023@22.43.12 (040800-483592595):17)

at android.os.Binder.execTransact(Binder.java:565)

2023-05-19 09:17:45.244 2621-3721 GCM-GMS com.google.android.gms I Groups upload failed

2023-05-19 09:17:45.247 6650-6650 Finsky com.android.vending I [1] jtd.h(1): Completed 1 account content syncs with 0 successful.

2023-05-19 09:17:45.247 6650-6650 Finsky com.android.vending I [1] ContentSyncJob.a(3): [ContentSync] Installation state replication failed, hasParameters=true.

2023-05-19 09:17:45.247 6650-6650 Finsky com.android.vending I [1] ContentSyncJob.a(8): [ContentSync] Scheduling replication attempt 1.

2023-05-19 09:17:45.247 6650-6650 Finsky com.android.vending I [1] ytq.r(4): SCH: jobFinished: 12-1. TimeElapsed: 40ms.

2023-05-19 09:17:45.248 2061-6461 NetworkScheduler.Stats com.google.android.gms.persistent I Task com.google.android.gms/com.google.android.gms.gcm.gmsproc.GcmInGmsTaskService finished executing. cause:5 result: 3 elapsed_millis: 26 uptime_millis: 26 exec_start_elapsed_seconds: 264 [CONTEXT service_id=218 ]

2023-05-19 09:17:45.270 6650-6687 Finsky com.android.vending I [440] yed.accept(55): SCH: Scheduling phonesky job Id: 1-1337, CT: 1684455220692, Constraints: [{ L: 37866125, D: 81066125, C: 1, I: 1, N: 1 }]

2023-05-19 09:17:45.270 6650-6687 Finsky com.android.vending I [440] yed.accept(55): SCH: Scheduling phonesky job Id: 10-4, CT: 1684455220511, Constraints: [{ L: 1200000, D: 86400000, C: 1, I: 1, N: 1 }]

2023-05-19 09:17:45.270 6650-6687 Finsky com.android.vending I [440] yed.accept(55): SCH: Scheduling phonesky job Id: 10-11, CT: 1684455220511, Constraints: [{ L: 600000, D: 86400000, C: 1, I: 1, N: 1 }]

2023-05-19 09:17:45.270 6650-6687 Finsky com.android.vending I [440] yed.accept(55): SCH: Scheduling phonesky job Id: 10-26, CT: 1684455220511, Constraints: [{ L: 600000, D: 86400000, C: 1, I: 1, N: 1 }]

2023-05-19 09:17:45.278 6650-6683 Finsky com.android.vending I [436] yec.apply(60): SCH: Scheduling 1 system job(s)

2023-05-19 09:17:45.278 6650-6683 Finsky com.android.vending I [436] ytp.d(4): SCH: Scheduling system job Id: 9003, L: 355233, D: 80821539, C: false, I: false, N: 1

2023-05-19 09:17:45.286 6650-6871 Finsky com.android.vending I [490] yva.a(-1): SCH: job service finished with id 9998.

2023-05-19 09:17:45.309 6650-6683 Finsky com.android.vending I [436] yed.accept(55): SCH: Scheduling phonesky job Id: 12-1, CT: 1684455465262, Constraints: [{ L: 40000, D: 86400000, C: 1, I: 1, N: 1 }]

2023-05-19 09:17:45.315 6650-6683 Finsky com.android.vending I [436] yec.apply(60): SCH: Scheduling 1 system job(s)

2023-05-19 09:17:45.315 6650-6683 Finsky com.android.vending I [436] ytp.d(4): SCH: Scheduling system job Id: 9003, L: 39947, D: 80821502, C: false, I: false, N: 1

2023-05-19 09:17:48.015 6924-6924 page-fusion pid-6924 I Init page sharing service.

2023-05-19 09:17:48.015 6924-6924 page-fusion pid-6924 I Couldn't open /dev/vboxguest file, error No such file or directory

2023-05-19 09:17:48.015 6924-6924 page-fusion pid-6924 E Failed to init page sharing service!

 

확인부탁드립니다!