当前位置: 首页 > 工具软件 > xplay > 使用案例 >

WebView在安卓5.1部分机型例如ivo xplay5等上的崩溃

劳研
2023-12-01

        在写自定义webview时,碰到了一个崩溃:

Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
    at android.content.res.Resources.getText(Resources.java:318)
    at android.content.res.VivoResources.getText(VivoResources.java:123)
    at android.content.res.Resources.getString(Resources.java:404)
    at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:694)
    at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:618)
    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:312)
    at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:96)
    at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:264)

很奇怪的问题,Vivo系统上很容易见到(适配vivo真的好累) 

解决方案:

public class CustomWebView extends WebView {
    public CustomWebView (Context context) {
        super(context, null);
    }

    public CustomWebView (Context context, AttributeSet attrs) {
        super(context, attrs, 0);
    }

    public CustomWebView (Context context, AttributeSet attrs, int defStyleAttr) {
        super(getFixedContext(context), attrs, defStyleAttr);
    }

    public static Context getFixedContext(Context context) {
        if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT < 23) // Android Lollipop 5.0 & 5.1 这两个系统适配真的问题很多啊
            return context.createConfigurationContext(new Configuration());
        return context;
    }
}

为这两个版本适配特殊的context

 类似资料: