-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
해결됨
코드 완성 후 갤러리 이미지 안보임
23.05.18 17:17 작성 조회수 606
0
전체 코드 작성 후 빌드하면 볼 수 있는 에뮬레이터 화면입니다.
아무것도 노출이 안되는 텅 빈 화면만 보입니다.
어떤 문제가 있어 그런지 알 수 가 없어 문의 남깁니다!
답변을 작성해보세요.
0
오준석
지식공유자2023.05.19
로그는 에러가 난 부분만 공유주시면 되는데 로그에 에러가 없는 것 같은데 맞나요.
기기에서 내보내는 에러 말고 우리가 작성한 코드에서의 에러만 보면 됩니다.
방금 코드 내려받아서 실행해 봤을 때 잘 되는것 확인이 되는데요.
혹시 기기에 사진이 없는 것은 아닌지, 없다면 내장 카메라로 사진 몇 장 찍어주시고요.
앱을 다시 실행해 보시기 바랍니다.
admin
질문자2023.05.20
네! 다시 확인해보았습니다.
아래와 같이 오류는 몇 개 보이는 데 앱 실행하는데 문제가 되는 오류는 아닌 것 같습니다.
조언주신대로 아래와 같이 에뮬레이터에 이미지를 저장해서 실행해보았습니다.
아래 이미지와 같이 에뮬레이터에 설치된 카메라로 찍은 이미지는 잘 보이는데 외부에서 업로드한 이미지는 보이지 않고 인디케이터만 생성되어서 슬라이드 됩니다.
추가적으로, 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),
)
오준석
지식공유자2023.05.20
안드로이드의 미디어 시스템은 사진이나 영상이 작성되었을 때 media scan 이라는 동작이 특정 시점에 실행되어 db로 미디어 정보가 관리됩니다.
이 내용을 토대로 사진앱에서 사진이나 영상을 읽어올 수 가 있습니다. 우리가 만든 앱도 결국 미디어 db의 정보를 토대로 정보를 얻어옵니다.
에뮬레이터에 임의로 사진을 업로드하는 경우에 바로 media scan 이 되지 않아서 앱에서 사진 정보를 읽을 수 없는 타이밍이 생긴 것 같습니다.
에뮬을 재시작하면 부팅시 media scan 이 동작해서 아마도 잘 보일 것입니다.
일반적인 폰 사용시에는 발생할 수 없는 상황이기 때문에 코드는 정상이라고 보시면 되겠습니다.
추가적으로 강의에서 다룬 Pager 라이브러리는 deprecated 되었더라고요.
공식 Pager 링크를 첨부합니다.
admin
질문자2023.05.22
네! media scan 내용도 한번 더 확인해보겠습니다.
Jetpack compose 를 처음 진행하지만 강의 보면서 많은 도움이 되고 있습니다.
0
admin
질문자2023.05.19
안녕하세요!
첫 번째 화면 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
두 번째 화면
'허용' 클릭 후 빈 화면 노출 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!
확인부탁드립니다!
답변 2