SysUtils: ApplicationStatus(WebView)中的ApplicationContext为空

22

在基于WebView的应用程序启动时,我可以看到一些奇怪的东西。它并不影响应用程序,但我很好奇为什么会出现这个错误。没有崩溃,一切似乎都很正常,但是有这个错误...

以下是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

我认为错误出在这里:https://chromium.googlesource.com/chromium/src/base/+/master/android/java/src/org/chromium/base/SysUtils.java

这是几行WebView初始化的代码。

...
// 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() {
...

发生了什么?


1
这也发生在我身上了。我还没有弄清楚。 - Sam003
我也看到了这个问题,但我认为它与Facebook SDK有关--你正在使用Facebook SDK吗? - Alan Moore
1
不是的。它通常存在于WebView中。 - koras
我在一个棒棒糖设备(Nexus 10)上看到了这个错误(E/SysUtils﹕ApplicationContext is null in ApplicationStatus),但在一个果冻豆设备上却没有。然而,据我所知,我的应用程序中根本没有使用WebView,尽管我确实使用AdMob,也许它在底层使用了WebView...?这个错误似乎也没有什么不良影响,但是摆脱它会很好:)。也许这是WebView中的一个bug? - snark
@Kaushik 我不知道。这对我来说就像是一个警告。我只是好奇。 - koras
1个回答

13

这里所发生的情况是:

由于ApplicationStatus尚未初始化,因此无法从中获取上下文。这是一个完全自然的情况,因此不应引发错误。将其记录为错误是程序员有些夸张了。

但是:

这并不会造成任何实际问题,因为该函数仅尝试获取上下文对象以执行另一个检查来评估设备的性能能力。由于它有时无法调用"isLowRamDevice()",它将继续执行其余的检查。因此,最坏的情况是在此时无法检测到低端手机,但随后会进行其他检查。

另外,“我在Lollipop设备(Nexus 10)中看到这个错误,但在JellyBean设备中没有看到”也是完全正常的,因为如果它检测到低于KitKat的任何内容,该函数就会提前返回。(//任何早期的设备都不能被视为“低端”


你有没有关于 http://stackoverflow.com/questions/37140498/proxy-issues-in-emulator-and-mobile-device 的任何想法? - Smitha
@Smitha,这是一个不同的问题。尝试在Google中搜索“ClassNotFoundException:com.android.webview.chromium.Drp”,那就是你的问题。 - Gergely Bacso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接