发生膨胀异常'androidx.appcompat:appcompat:1.1.0'

时间:2019-09-17 07:04:19

标签: java android android-studio webview android-appcompat

我正在尝试升级我的gradle。当我将appcompat从1.0.2更新到1.1.0时,我的Webview在某些手机上不再起作用。 (api 21和22)。
有没有一种聪明的方法可以升级到1.1.0并仍然使webview正常工作。

我得到了一个“ android.view.InflateException:二进制XML文件第1行:膨胀类错误”。 我试图找到一种在模拟器上更新Webview的方法。但是我真的希望有一种代码可以解决该问题,对于不更新Web视图的用户。

我的xml:

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

我的活动:

 private WebView mWebView;
    private String state;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        try {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.login_webview_activity);

            mWebView = findViewById(R.id.webview);

            mWebView.setWebViewClient(new MyBrowser());

            WebSettings settings = mWebView.getSettings();
            settings.setJavaScriptEnabled(true);
            settings.setDomStorageEnabled(true);

            CookieManager.getInstance().setAcceptCookie(true);
            CookieManager.getInstance().setAcceptThirdPartyCookies(mWebView, true);

            mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

我的错误:

WebViewActivity: android.view.InflateException: Binary XML file line #1: Error inflating class android.webkit.WebView
        at android.view.LayoutInflater.createView(LayoutInflater.java:633)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:482)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at no.posten.sporing.controller.activity.WebViewActivity.onCreate(WebViewActivity.java:53)
        at android.app.Activity.performCreate(Activity.java:5937)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)

再次-appcompat 1.0.2就像一个超级按钮,但不是1.1.0。

1 个答案:

答案 0 :(得分:4)

如果您不依赖DayNight主题切换(或其他UiMode events),则可以将android:configChanges="uiMode"添加到Webview活动清单中,以防止AppCompatDelegate更新资源配置,从而使Webview膨胀混乱。通过studing the sourcecode在1.1.0-rc01到1.1.0的更改中找到了解决方法。

降级到1.1.0-rc01也应该起作用。