불행히도이 오류를 신뢰할 수없이 재현 할 수는 없지만 때로는 생동감있는 로그에서보고되기도합니다. 여기에 스택 트레이스 인해 android.os.Handler
의 개인 정적 인스턴스가
하지
(감사 @Idolon입니다 어떻게 든 WebViewCore.java
Android 버그 : WebViewCore가 어설 션 오류로 인해 실패합니다.
Assert.assertNull(sWebCoreHandler);
sWebCoreHandler에서이 라인에 Droid 2.2.2 FRG83G
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertNull(Assert.java:233)
at junit.framework.Assert.assertNull(Assert.java:226)
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:594)
at java.lang.Thread.run(Thread.java:1096)
이 될 것으로 보인다
와 사용자에 의해보고 된 것 수정을 위해)이미 초기화되었지만이 문제를 해결하거나 해결하는 방법에 대한 단서가 없습니다.
이것은 종종 걱정하기에 충분합니다. 흥미로운 점은 앱에 Activity
이로드되어 있는데 액티비티 중 하나에도 WebView가 없어도 겉으로보기에는 문제가 발생한다는 것입니다.
P. 이것은
public WebViewCore(Context context, WebView w, CallbackProxy proxy,
Map<String, Object> javascriptInterfaces) {
//....
// We need to wait for the initial thread creation before sending
// a message to the WebCore thread.
// XXX: This is the only time the UI thread will wait for the WebCore
// thread!
synchronized (WebViewCore.class) {
if (sWebCoreHandler == null) {
// Create a global thread and start it.
Thread t = new Thread(new WebCoreThread());
//...
}
}
//...
private static Handler sWebCoreHandler;
// Class for providing Handler creation inside the WebCore thread.
private static class WebCoreThread implements Runnable {
public void run() {
Looper.prepare();
Assert.assertNull(sWebCoreHandler); // this assertion fails
synchronized (WebViewCore.class) {
sWebCoreHandler = new Handler() {
//...
이
어떤WebView
의 생성자에서 실행되고 어설 션 오류는 호출되는
WebCoreThread
생성자에서 온다 ... 버그 # 유죄 소스 코드를 보면
16258
? 너 정확히 원하는게 뭐야? 웹뷰에 "특별한"것이 있는지 알려줄 수 있습니까? –
나는 누군가가 내게 무엇이 문제인지, 그것을 피하는 방법을 설명하기를 원해. "내"webview에는 특별한 것이 없으며 코드를 실행할 때이 버그를 재현 할 수는 없지만 ACRA 로그가 가득 찼습니다. 그리고 이것은 완전한 스택 추적입니다. – Bostone
코드에서 어떤 줄이 문제를 일으키는 지 알 수 있습니까? 6 개월 만에이 버그를보고 한 유일한 사람이라면 코드의 버그 일 수 있습니다. – slayton