【问题标题】:Webview + proguard crashing on a certain deviceWebview + proguard 在某个设备上崩溃
【发布时间】:2020-07-01 09:43:01
【问题描述】:

嘿堆栈溢出社区, 我最近收到了来自 crashlytics 的新崩溃,该崩溃仅发生在具有 android 版本 8.1.0 的设备 Samsung Galaxy J7(2016) 上。但是,我测试了相同的步骤(由 firebase 记录)并由该用户在同一设备上尝试(我在工作场所拥有相同的设备,具有相同的 android 操作系统版本)。我没有发生崩溃,所以如果你们能提供建议,将不胜感激。 崩溃日志:

Fatal Exception: android.view.InflateException: Binary XML file line #20: Binary XML file line #105: Error inflating class android.webkit.WebView


Caused by android.view.InflateException: Binary XML file line #105: Error inflating class android.webkit.WebView


Caused by java.lang.reflect.InvocationTargetException
   at java.lang.reflect.Constructor.newInstance0(Constructor.java)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
   at android.view.LayoutInflater.createView(LayoutInflater.java:647)
   at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:995)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
   at androidx.fragment.app.Fragment.performCreateView(Fragment.java:15)
   at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:645)
   at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:93)
   at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:42)
   at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:173)
   at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:38)
   at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:113)
   at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:88)
   at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:21)
   at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:2)
   at android.os.Handler.handleCallback(Handler.java:790)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:164)
   at android.app.ActivityThread.main(ActivityThread.java:7025)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)


Caused by java.lang.NoSuchMethodError: No static method ()Landroid/content/pm/PackageInfo; in class Landroid/webkit/WebViewFactory; or its super classes (declaration of 'android.webkit.WebViewFactory' appears in /system/framework/framework.jar!classes2.dex)
   at com.android.webview.chromium.WebViewChromiumFactoryProvider.f(WebViewChromiumFactoryProvider.java:4)
   at com.android.webview.chromium.WebViewChromiumFactoryProvider.<init>(WebViewChromiumFactoryProvider.java:12)
   at com.android.webview.chromium.WebViewChromiumFactoryProviderForOMR1.<init>(WebViewChromiumFactoryProviderForOMR1.java:1)
   at com.android.webview.chromium.WebViewChromiumFactoryProviderForOMR1.create(WebViewChromiumFactoryProviderForOMR1.java:1)
   at java.lang.reflect.Method.invoke(Method.java)
   at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:208)
   at android.webkit.WebView.getFactory(WebView.java:2530)
   at android.webkit.WebView.ensureProviderCreated(WebView.java:2525)
   at android.webkit.WebView.setOverScrollMode(WebView.java:2590)
   at android.view.View.<init>(View.java:4868)
   at android.view.View.<init>(View.java:5054)
   at android.view.ViewGroup.<init>(ViewGroup.java:597)
   at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
   at android.webkit.WebView.<init>(WebView.java:643)
   at android.webkit.WebView.<init>(WebView.java:588)
   at android.webkit.WebView.<init>(WebView.java:571)
   at android.webkit.WebView.<init>(WebView.java:558)
   at java.lang.reflect.Constructor.newInstance0(Constructor.java)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
   at android.view.LayoutInflater.createView(LayoutInflater.java:647)
   at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.parseInclude(LayoutInflater.java:995)
   at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
   at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
   at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
   at androidx.fragment.app.Fragment.performCreateView(Fragment.java:15)
   at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:645)
   at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:93)
   at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:42)
   at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:173)
   at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:38)
   at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:113)
   at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:88)
   at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:21)
   at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:2)
   at android.os.Handler.handleCallback(Handler.java:790)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:164)
   at android.app.ActivityThread.main(ActivityThread.java:7025)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

【问题讨论】:

  • 你能显示你的xml文件吗?

标签: java android android-studio kotlin proguard


【解决方案1】:

请让用户从 Google Play 安装最新版本的 WebView,看看是否能解决问题。

【讨论】:

  • 嘿,我的朋友,我不知道谁对你投了反对票,但在大多数情况下,你的应用程序已经上线,你不知道你的用户亲自向他们询问或要求他们提供什么
  • 是的,你是对的。我错误地假设您可以联系用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
相关资源
最近更新 更多