2015-05-03 6 views
21

Posso vedere qualcosa di strano all'avvio dell'app basata su WebView. Non ha alcun effetto sull'app, ma sono curioso del motivo per cui appare l'errore. Nulla si blocca, tutto sembra essere ok, ma l'errore ...SysUtils: ApplicationContext è null in ApplicationStatus (WebView)

Ecco logcat

Loading com.google.android.webview version 42.0.2311.137 (code 2311137) 
I/LibraryLoader﹕ Time to load native libraries: 2 ms (timestamps 3347-3349) 
I/LibraryLoader﹕ Expected native library version number "",actual native library version number "" 
V/WebViewChromiumFactoryProvider﹕ Binding Chromium to main looper Looper (main, tid 1) {2d3b4b2c} 
I/LibraryLoader﹕ Expected native library version number "",actual native library version number "" 
I/chromium﹕ [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0 
I/BrowserStartupController﹕ Initializing chromium process, singleProcess=true 
W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring 
E/SysUtils﹕ ApplicationContext is null in ApplicationStatus 
W/chromium﹕ [WARNING:resource_bundle.cc(286)] locale_file_path.empty() 
I/chromium﹕ [INFO:aw_browser_main_parts.cc(63)] Load from apk succesful, fd=34 off=6850672 len=3697 
I/chromium﹕ [INFO:aw_browser_main_parts.cc(76)] Loading webviewchromium.pak from, fd:35 off:7953036 len:1161174 
I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 01/15/15, ab0075f, Id3510ff6dc 
W/AudioManagerAndroid﹕ Requires BLUETOOTH permission 
W/chromium﹕ [WARNING:data_reduction_proxy_config.cc(150)] SPDY proxy OFF at startup 
W/art﹕ Attempt to remove local handle scope entry from IRT, ignoring 
W/AwContents﹕ onDetachedFromWindow called when already detached. Ignoring 
I/GAv4﹕ Google Analytics 4.5.0/7327 is starting up. To enable debug logging on a device run: 
    adb shell setprop log.tag.GAv4 DEBUG 
    adb logcat -s GAv4 

Suppongo che l'errore viene da qui: https://chromium.googlesource.com/chromium/src/base/+/master/android/java/src/org/chromium/base/SysUtils.java

poche righe di WebView inizializzazione

... 
// load url in webView 
webView.loadUrl(webViewUrl); 
webView.setWebViewClient(new MyAppWebViewClient()); 

// implement WebChromeClient inner class 
// we will define openFileChooser for select file from camera 
webView.setWebChromeClient(new WebChromeClient() { 
... 

Cosa sta succedendo?

+1

Questo è successo anche a me. Non l'ho ancora capito. – Sam003

+0

Anche io sto vedendo questo, ma penso che sia relativo all'SDK di Facebook - stai usando l'SDK di Facebook? –

+1

No. È presente in WebView in generale. – koras

risposta

12

Quello che sta accadendo qui è:

L'ApplicationStatus non è ancora inizializzato, in modo che il contesto non può essere ottenuto da esso. Questa è una situazione completamente naturale, quindi non dovrebbe essere sollevato alcun errore. Registrarlo come un errore era un'esagerazione dal programmatore.

Tuttavia:

ciò non causa alcun problema reale, perché la funzione cerca di ottenere un oggetto contesto solo fine di eseguire un ulteriore controllo per valutare le capacità di prestazione del dispositivo. Poiché a volte non riesce a chiamare "isLowRamDevice()", continuerà a eseguire il resto dei controlli. Quindi, nel peggiore dei casi, non è possibile rilevare un telefono di fascia bassa a questo punto e verranno effettuati controlli successivi.

Inoltre è completamente normale che "I see this error in a Lollipop device (Nexus 10) but not in a JellyBean device", perché la funzione ha un ritorno anticipato se rileva qualcosa sotto KitKat. (// Any pre-KitKat device cannot be considered 'low-end')

+0

avete qualche idea su http://stackoverflow.com/questions/37140498/proxy-issues-in-emulator-and-mobile-device – Smitha

+0

@Smitha, questo è un altro problema. Prova a cercare su google "ClassNotFoundException: com.android.webview.chromium.Drp", questo è il tuo problema. –