2017-03-21 2 views
1

Ich baue eine Android-App, die ein paar Webview enthält. Die App muss mindestens KitKat 4.4 unterstützen, das Chrom v30 Webview gemäß this enthält. Ich teste die App auf dem Samsung Galaxy Note 2 läuft 4.4.2 Lager rom läuft die Webansicht sehr langsam und die logcat ist Flut mit den folgenden Fehlermeldungen:Android KitKat 4.4 Chromium WebView "v8_value_converter_impl.cc" Fehler

... 
03-21 14:11:48.651 29445-29445/com.mylovely.app I/GraphicBuffer: allocate buffer (w:384 h:384 f:1) handle(0x6f64b600) err(0) 
03-21 14:11:48.652 29445-29445/com.mylovely.app I/GraphicBuffer: allocate buffer (w:384 h:384 f:1) handle(0x6d715280) err(0) 
03-21 14:11:48.652 29445-29445/com.mylovely.app I/GraphicBuffer: allocate buffer (w:128 h:192 f:1) handle(0x6dd99590) err(0) 
03-21 14:12:03.996 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionDirection threw an exception. 
03-21 14:12:03.996 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionEnd threw an exception. 
03-21 14:12:03.996 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionStart threw an exception. 
03-21 14:12:04.007 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionDirection threw an exception. 
03-21 14:12:04.007 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionEnd threw an exception. 
03-21 14:12:04.007 29445-29884/com.mylovely.app E/chromium: [ERROR:v8_value_converter_impl.cc(405)] Getter for property selectionStart threw an exception. 
... <skipped lots of duplicated error here> 

03-21 14:12:05.370 29445-29445/com.mylovely.app I/dalvikvm-heap: Grow heap (frag case) to 41.055MB for 11211498-byte allocation 
03-21 14:12:06.285 29445-29445/com.mylovely.app I/dalvikvm-heap: Grow heap (frag case) to 34.448MB for 4285074-byte allocation 
03-21 14:12:06.354 29445-29445/com.mylovely.app I/Choreographer: Skipped 41 frames! The application may be doing too much work on its main thread. 
03-21 14:12:06.356 29445-29445/com.mylovely.app I/GraphicBuffer: allocate buffer (w:384 h:384 f:1) handle(0x637baab0) err(0) 
03-21 14:12:06.358 29445-29445/com.mylovely.app I/GraphicBuffer: allocate buffer (w:384 h:384 f:1) handle(0x6e7ee640) err(0) 
... 

ich schon einige googeln tat und fand dies scheint fixiert werden this chromium ticket. Aber wir können das System-Webview unter 4.4.2 nicht über Google Play aktualisieren. Gibt es eine andere Möglichkeit, dieses Problem zu beheben/umgehen neben dem Einbetten einer anderen Webansicht (wie crosswalk) in die App?

+0

Ich frage mich, ob es eine Möglichkeit gibt, die Chromversion des Webview in kitkat zu aktualisieren. jemand? – user1506104

Antwort

1

Ich habe die Ursache des Problems gefunden. Ich fügte einige schwere js Aufgaben in den onProgressChanged Rückruf hinzu, die sie ein Nullobjekt ausgeben würden. Dieses Nullobjekt konnte nicht serialisiert werden und verursacht den Fehler in this chromium ticket. Als Workaround habe ich alle js-Aufrufe mit IIFE umschlossen, um die Ausgabe zu drosseln und die js-Aufrufe in onProgressChanged unter Verwendung von Guavas RateLimiter zu drosseln.

Verwandte Themen