본문 바로가기
Tech Notes

[앱인토스] Error: java object gone

by miracle-tech 2026. 2. 14.
320x100
반응형

간밤에 sentry에서 에러 메일이 와 있었습니다.

궁금해서 내용을 살펴보니 다음과 같이 에러 내용이 써 있었어요.

 

sentry error dashboard

 

 

원인은 WebView와 네이티브(Java/Android) 간 통신 문제였습니다.

즉, postMessage 를 호출하려는 시점에 java 쪽 브릿지 객체가 GC(가비지 컬렉션)되었거나 WebView 가 파괴된 상태라고.

 

[ErrorTracker] Error: Error invoking postMessage: Java object is gone [object Object]

 

                          

                                                                                                                   



  흐름:
  1. 토스 앱이 WebView를 열어서 미니앱(바꿔먹자) 로드
  2. JS 코드가 GoogleAdMob.loadAppsInTossAdMob() 호출
  3. 내부적으로 postMessage()로 네이티브에 "광고 로드해줘" 요청
  4. 네이티브가 AdMob SDK로 실제 광고를 로드
  5. 완료되면 네이티브 → WebView로 loaded 이벤트 전달

  에러 원인:
  - JS는 페이지 로드되자마자 바로 실행됨
  - 네이티브 브릿지 객체(Java)는 아직 세팅 중
  - JS: "광고 로드해줘!" → 네이티브: "나 아직 준비 안 됐어" → Java object is gone

 

  해결방법:
  1. 시작 안내 페이지 넣어서 loadAppsInTossAdMob 시간 벌어주기
  2. 네이티브 브릿지가 준비되지 않았으면 재시도 해주기 (백그라운드에서 동작하므로 USER 행동에는 영향이 없다)

if (retryCount < 2) {                                                                                                        
      81 +          setTimeout(() => preloadRewardedAd(retryCount + 1), 2000);                                                                 
      82 +        }
320x100