Notice
Recent Posts
Recent Comments
Link
투케이2K
174. (TWOK/ERROR) [Android] WebView methods must be called on the same thread - 자바스크립트 브릿지 호출 에러 본문
투케이2K 에러관리
174. (TWOK/ERROR) [Android] WebView methods must be called on the same thread - 자바스크립트 브릿지 호출 에러
투케이2K 2023. 10. 2. 09:11[환경 설정 및 설명]
프로그램 : AndroidStudio
설 명 : [Android] WebView methods must be called on the same thread - 자바스크립트 브릿지 호출 에러
W/WebView: java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 2) {8fb5a13} called on Looper (JavaBridge, tid 623) {9ff9505}, FYI main Looper is Looper (main, tid 2) {8fb5a13})
at android.webkit.WebView.checkThread(WebView.java:2615)
at android.webkit.WebView.loadUrl(WebView.java:747)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:186)
at android.os.Looper.loop(Looper.java:313)
at android.os.HandlerThread.run(HandlerThread.java:67)
[에러 원인]
1. 메인 스레드가 아닌 곳에서 Android To JavaScript 브릿지 통신 시 발생하는 이슈
[해결 방법]
1. Handler(Looper.getMainLooper()) 핸들러 내에서 자바스크립트 브릿지 통신 수행
2. 소스 코드 첨부 :
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
// [Android >> JavaScript 함수 호출]
loginWebView.loadUrl("javascript:setLogin('"+S_Preference.getString(getApplication(), S_FinalData.PRE_USER_LOGIN_ID)+"', '"+S_Preference.getString(getApplication(), S_FinalData.PRE_USER_LOGIN_PW)+"')");
}
}, 0);
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments