From b53c8bf6fa1ac49ab89576f81ae1cf6fdbab71ae Mon Sep 17 00:00:00 2001 From: huangjian Date: Mon, 28 Dec 2020 16:09:37 +0800 Subject: [PATCH] fix Android5.1.1 android.view.InflateException:Binary XML file line #16: Error inflating class android.webkit.WebView --- .../erban/avroom/activity/AVRoomActivity.java | 6 --- .../avroom/fragment/DialogWebFragment.java | 1 + .../avroom/widget/LollipopFixedWebView.java | 38 +++++++++++++++++++ .../main/res/layout/fragment_dialog_web.xml | 2 +- 4 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/avroom/widget/LollipopFixedWebView.java diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index fdb1a5168..260d9f129 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -27,8 +27,6 @@ import androidx.viewpager.widget.ViewPager; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.coorchice.library.utils.LogUtils; -import com.google.gson.Gson; import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nimlib.sdk.NIMSDK; import com.netease.nimlib.sdk.Observer; @@ -54,8 +52,6 @@ import com.yizhuan.erban.common.widget.CircleImageView; import com.yizhuan.erban.common.widget.CustomImageSpan; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter; -import com.yizhuan.erban.ui.login.AddUserInfoActivity; -import com.yizhuan.erban.ui.login.LoginActivity; import com.yizhuan.erban.ui.patriarch.help.LimitEnterRoomHelper; import com.yizhuan.erban.ui.pay.ChargeActivity; import com.yizhuan.erban.ui.user.UserInfoActivity; @@ -68,13 +64,11 @@ import com.yizhuan.erban.ui.widget.dialog.AllServiceGiftLevelThreeDialog; import com.yizhuan.erban.ui.widget.dialog.AllServiceGiftLevelTwoDialog; import com.yizhuan.erban.ui.widget.dialog.MonsterDialog; import com.yizhuan.erban.ui.widget.marqueeview.Utils; -import com.yizhuan.erban.utils.UserUtils; import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.auth.AuthModel; import com.yizhuan.xchat_android_core.auth.event.LogoutEvent; import com.yizhuan.xchat_android_core.bean.BaseProtocol; -import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo; import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.im.game.ImGameMode; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/DialogWebFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/DialogWebFragment.java index d39d532e6..c09fc0354 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/DialogWebFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/DialogWebFragment.java @@ -7,6 +7,7 @@ import android.app.Dialog; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; +import android.content.res.AssetManager; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.net.http.SslError; diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/LollipopFixedWebView.java b/app/src/main/java/com/yizhuan/erban/avroom/widget/LollipopFixedWebView.java new file mode 100644 index 000000000..b98dc657b --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/LollipopFixedWebView.java @@ -0,0 +1,38 @@ +package com.yizhuan.erban.avroom.widget; + +import android.annotation.TargetApi; +import android.content.Context; +import android.content.res.Configuration; +import android.os.Build; +import android.util.AttributeSet; +import android.webkit.WebView; + +public class LollipopFixedWebView extends WebView { + + public LollipopFixedWebView(Context context) { + super(getFixedContext(context)); + } + + public LollipopFixedWebView(Context context, AttributeSet attrs) { + super(getFixedContext(context), attrs); + } + + public LollipopFixedWebView(Context context, AttributeSet attrs, int defStyleAttr) { + super(getFixedContext(context), attrs, defStyleAttr); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public LollipopFixedWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(getFixedContext(context), attrs, defStyleAttr, defStyleRes); + } + + public LollipopFixedWebView(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing) { + super(getFixedContext(context), attrs, defStyleAttr, privateBrowsing); + } + + 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; + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_dialog_web.xml b/app/src/main/res/layout/fragment_dialog_web.xml index 4b025d981..4162aac01 100644 --- a/app/src/main/res/layout/fragment_dialog_web.xml +++ b/app/src/main/res/layout/fragment_dialog_web.xml @@ -13,7 +13,7 @@ android:layout_marginStart="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_20"> -