간밤에 sentry에서 에러 메일이 와 있었습니다.
궁금해서 내용을 살펴보니 다음과 같이 에러 내용이 써 있었어요.

원인은 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 + }'Tech Notes' 카테고리의 다른 글
| HTML5란? 웹에서 게임까지, 플러그인 없이 다 되는 시대 (0) | 2026.02.15 |
|---|---|
| [앱인토스] 앱 테스트 시 localStorage 삭제 방법 (0) | 2026.02.14 |
| [앱인Toss] 인앱 광고 넣기 (0) | 2026.02.10 |
| 앱 딥링크(Deep Link) 완벽 가이드 (0) | 2026.02.05 |
| [앱인토스] WebView 미니앱 테스트 방법 (0) | 2026.02.05 |