pipoket
pipoket2y ago

안드로이드에서 PaymentWidget을 생성했을 때 IllegalStateException

안녕하세요. React-Native Expo 환경에서 Android 결제 SDK를 연동하고 있는데, PaymentWidget을 생성하는 시점에 아래와 같은 오류가 발생하면서 진행이 되고 있지 않은 상황입니다. java.lang.IllegalStateException: LifecycleOwner com.fastinate.MainActivity@469b48c is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED 관련해서 디스코드 Repo도 찾아봤는데 STARTED 상태에서 PaymentWidget을 사용하려고 했을 때 오류가 발생한 경우는 있었지만 제 경우는 없는 것 같아서 도움을 받을 수 있을까 하여 메시지를 드립니다.
11 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
pipoket
pipoketOP2y ago
아, Android 개발 언어는 Kotlin을 사용하고 있습니다.
유부장
유부장2y ago
Stack Overflow
How to resolve the error "LifecycleOwners must call register before...
I am using registerForActivityResult for google sign in implementation in my development. Everything was working fine until I upgraded my fragment dependency to 1.3.0-beta01. The application current
유부장
유부장2y ago
activity 가 onCreate 에서 호출 되어야 한다는 내용인데, 이것과 관련있는지 확인 부탁 드려요
pipoket
pipoketOP2y ago
네, 관련해서 저도 이 SO 게시글을 접했었는데 지금 제가 작성한 코드에서는 registerForActivityResult 함수를 호출하는 부분이 없고 com.tosspayments.paymentsdk.view.PaymentMethod 를 곧바로 부르고 있어서요.. 음.. PaymentMethod 내부의 어디에서 오류가 발생하는지까지 로그를 찍어보며 좀 찾아봐야 하는 상황일까요? 지금 stacktrace가 도움이 안되는 상황이라, 일단 계속 저 오류가 어디에서 발생하는지 근원을 좀 찾아보고 있는 중이긴 합니다.
유부장
유부장2y ago
음.. 전달주신 내용을 보면 이건 위젯쪽 문제가 아니라서, 저희가 봐드릴 수 있는 부분이 제한적으로 보여지기는 하네요
pipoket
pipoketOP2y ago
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: java.lang.IllegalStateException: LifecycleOwner com.fastinate.MainActivity@469b48c is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.result.ActivityResultRegistry.register(ActivityResultRegistry.java:123)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.ComponentActivity.registerForActivityResult(ComponentActivity.java:833)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.ComponentActivity.registerForActivityResult(ComponentActivity.java:842)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at com.tosspayments.paymentsdk.PaymentWidget.<init>(PaymentWidget.kt:39)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at com.tosspayments.paymentsdk.PaymentWidget.<init>(PaymentWidget.kt:19)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at expo.modules.tosspayments.ReactNativeTossPaymentsWidget.initialize(ReactNativeTossPaymentsWidget.kt:70)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: java.lang.IllegalStateException: LifecycleOwner com.fastinate.MainActivity@469b48c is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.result.ActivityResultRegistry.register(ActivityResultRegistry.java:123)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.ComponentActivity.registerForActivityResult(ComponentActivity.java:833)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at androidx.activity.ComponentActivity.registerForActivityResult(ComponentActivity.java:842)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at com.tosspayments.paymentsdk.PaymentWidget.<init>(PaymentWidget.kt:39)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at com.tosspayments.paymentsdk.PaymentWidget.<init>(PaymentWidget.kt:19)
07-25 18:02:45.851 28910 29099 E ReactNativeTossPaymentsModule: at expo.modules.tosspayments.ReactNativeTossPaymentsWidget.initialize(ReactNativeTossPaymentsWidget.kt:70)
스택트레이스를 뽑아봤는데 com.tosspayments.paymentssdk.PaymentWidget.<init> 내부에서 registerForActivityEvent 를 호출하는데 혹시 PaymentWidget 을 호출할 때 뭔가 전제조건 같은 것이 있을까요..?
유부장
유부장2y ago
우선 연동 시작 부분부터 정리 해볼게요 현재 위젯 연동은, docs.tosspayments.com 에 설명된 script 로, 웹뷰 띄워서 그 위에 렌더하는 방식으로 연동하고 있으신가요?
pipoket
pipoketOP2y ago
아니오, 안드로이드 SDK를 사용해서 native 연동하는 방식으로 진행하고 있습니다.
이실장
이실장2y ago
음.. 일단 저희 git repo 받으신 후, example app은 실행해보셨을까요?
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.

Did you find this page helpful?