当前位置: 首页 > 知识库问答 >
问题:

Lollipop5.1设备上的新WebView例外[重复]

宿嘉庆
2023-03-14

我尝试将WebView添加到我的活动中:

WebView webView = new WebView(this);

在所有设备上,这工作正常,但在Android Lollipop 5.1(仅限)设备上,我在这一行中得到了例外:

10-18 12:04:29.741 13131-13131/xx.xxxxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: xx.xxxxxx, PID: 13131
java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxxxxx/xx.xxxxxx.activity.login.UseActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
    at android.app.ActivityThread.access$800(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
        Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
        at android.content.res.Resources.getText(Resources.java:299)
        at android.content.res.Resources.getString(Resources.java:385)
        at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684)
        at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
        at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631)
        at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:780)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:619)
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:556)
        at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:311)
        at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:96)
        at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:263)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:123)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:110)
        at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:107)
        at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:260)
        at android.webkit.WebView.<init>(WebView.java:554)
        at android.webkit.WebView.<init>(WebView.java:489)
        at android.webkit.WebView.<init>(WebView.java:472)
        at android.webkit.WebView.<init>(WebView.java:459)
        at android.webkit.WebView.<init>(WebView.java:449)
        at xx.xxxxxx.activity.login.UseActivity.onActivityCreate(UseActivity.java:69)
        at xx.xxxxxx.activity.BaseActivity.onCreate(BaseActivity.java:148)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
        at android.app.ActivityThread.access$800(ActivityThread.java:151) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5254) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

我做错了什么,什么是Android Lollipop 5.1设备上解决方案的最佳方式。

共有1个答案

傅正阳
2023-03-14

这可以通过捕捉错误,然后使用应用程序上下文创建WebView来解决:

try {
    webView = new WebView(this);
}
catch (Resources.NotFoundException e) {
    // Some older devices can crash when instantiating a WebView, due to a Resources$NotFoundException
    // Creating with the application Context fixes this, but is not generally recommended for view creation
    webView = new WebView(getApplicationContext());
}

通常不鼓励使用应用程序上下文创建视图,但在这里是可行的。

 类似资料:
  • 我有一个正在开发的网站,我计划在它旁边发布一个配套应用程序,因为它在手机上看起来不像在桌面上那么好。还有很多性能问题。我注意到一些网站通知你去一个不同的页面,如果你正在使用移动设备,我想这样做,除了有一个消息弹出。我确信我可以处理消息部分,但我需要的帮助是检测移动设备使用情况背后的方法学。我通过一个简单的谷歌搜索看到了这个网站: http://detectmobilebrowsers.com/ 但

  • 每次在创建新项目和运行项目时都出现此异常。我没有添加任何新的遗迹插件,仍然这个例外不断出现。请帮帮我

  • 外设接口的使用例程 模块   I2C   通过 I2C 设备读取温湿度传感器 aht10 的温湿度数据     Watchdog   独立看门狗设备使用     Led   通过PIN设备管理接口控制LED亮灭     PIN   通过按键控制蜂鸣器对应引脚的电平状态进而控制蜂鸣器     SD卡   SD卡设备的使用     SPI   通过SPI设备读取 w25q 的 ID 数据     UA

  • 新增设备 概述 自动生成设备激活凭证 文件批量上传添加设备 添加我购买的产品 批次管理 新增设备 更新时间:2018-03-14 17:26:59 概述 产品发布后,您将可以开始添加正式设备,正式设备与测试设备的区别是正式设备已经量产或进入正式使用阶段,设备数量上将不再做限制。 Link Develop支持两种设备添加来源:选择我开发的产品进行添加,或选择我购买的产品添加设备,选择我开发的产品可直

  • 当销毁一个设备连接凭据后,可以通过这条指令再次创建设备连接凭据。 请求方式: "|4|2|5|\r" 返回值: "|4|2|1|1|\r" 创建成功 "|4|2|1|2|reason|\r" 创建失败 参数 reason 创建失败的原因 Arduino样例: softSerial.print("|4|2|5|\r");

  • 问题内容: 在检查市场/ Playstore中是否有较新的Android版本之后,是否有任何方法可以通过应用程序(使用Android API或任何其他API /)来更新Android OS。此处需要支持的用例如下: 该应用程序启动并检查已安装的Android操作系统的版本 然后,它会在该设备的Playstore /其他存储库中找到可用的Android OS的版本 然后比较两个版本,如果可用版本较新