SysUtils:ApplicationStatus中的ApplicationContext为空(WebView)

kor*_*ras 22 java android webview

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

这是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
Run Code Online (Sandbox Code Playgroud)

我想错误来自这里: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() {
...
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

Ger*_*cso 13

这里发生的事情是:

ApplicationStatus尚未初始化,因此无法从中获取上下文.这是一种完全自然的情况,因此不应该引发任何错误.记录这个错误是编码员的夸张.

然而:

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

也是完全正常的 "I see this error in a Lollipop device (Nexus 10) but not in a JellyBean device",因为如果它检测到KitKat以下的任何东西,该函数会提前返回.(// Any pre-KitKat device cannot be considered 'low-end')