Fehler aufblasen WebView XML
Fand ich einen Absturz Bericht über Crashlytics in einer Samsung SM-G920F (Galaxy S6), version 5.1.1 (auf allen anderen Geräten, die ich nicht abrufen, die gleichen Fehler).
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage/com.mypackage.myactivity}:
android.view.InflateException: Binary XML file line #21: Error inflating class android.webkit.WebView
Dies ist das layout meiner webview (der Stil ist eine leere Formatvorlage):
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_webview_id"
style="@style/MyEmptyStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent" />
Dies ist, wie ich es in der Aktivität layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/my_webview_layout"
android:visibility="gone"/>
</LinearLayout>
Der gemeldete Fehler ist ein XML-Fehler, so dass ich den gesamten code (vereinfacht).
Dies ist ein einzelner Bericht, so geschah es nur ein mal auf dieses Gerät, kann mir jemand erklären warum?
BEARBEITEN (komplette stacktrace)
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage/com.mypackage.myactivity}: android.view.InflateException: Binary XML file line #21: Error inflating class android.webkit.WebView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.view.InflateException: Binary XML file line #21: Error inflating class android.webkit.WebView
at android.view.LayoutInflater.createView(LayoutInflater.java:640)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.mypackage.drawer.fragments.Myfragment.createContentView(Myfragment.java:50)
at com.externalpackage.app.ExternalFragment.onCreateView(ExternalFragment.java:115)
at com.externalpackage.app.LocationExternalFragment.onCreateView(LocationExternalFragment.java:65)
at com.mypackage.drawer.fragments.Myfragment.onCreateView(Myfragment.java:55)
at android.app.Fragment.performCreateView(Fragment.java:2114)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1064)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
at android.app.Activity.performCreateCommon(Activity.java:6492)
at android.app.Activity.performCreate(Activity.java:6521)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.mypackage.drawer.fragments.Myfragment.createContentView(Myfragment.java:50)
at com.externalpackage.app.ExternalFragment.onCreateView(ExternalFragment.java:115)
at com.externalpackage.app.LocationExternalFragment.onCreateView(LocationExternalFragment.java:65)
at com.mypackage.drawer.fragments.Myfragment.onCreateView(Myfragment.java:55)
at android.app.Fragment.performCreateView(Fragment.java:2114)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1064)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
at android.app.Activity.performCreateCommon(Activity.java:6492)
at android.app.Activity.performCreate(Activity.java:6521)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.util.AndroidRuntimeException: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:174)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:109)
at android.webkit.WebView.getFactory(WebView.java:2202)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2197)
at android.webkit.WebView.setOverScrollMode(WebView.java:2256)
at android.view.View.<init>(View.java:3843)
at android.view.View.<init>(View.java:3954)
at android.view.ViewGroup.<init>(ViewGroup.java:513)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:553)
at android.webkit.WebView.<init>(WebView.java:498)
at android.webkit.WebView.<init>(WebView.java:481)
at android.webkit.WebView.<init>(WebView.java:468)
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.mypackage.drawer.fragments.Myfragment.createContentView(Myfragment.java:50)
at com.externalpackage.app.ExternalFragment.onCreateView(ExternalFragment.java:115)
at com.externalpackage.app.LocationExternalFragment.onCreateView(LocationExternalFragment.java:65)
at com.mypackage.drawer.fragments.Myfragment.onCreateView(Myfragment.java:55)
at android.app.Fragment.performCreateView(Fragment.java:2114)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1064)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
at android.app.Activity.performCreateCommon(Activity.java:6492)
at android.app.Activity.performCreate(Activity.java:6521)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.pm.PackageManager$NameNotFoundException: com.google.android.webview
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:167)
at android.webkit.WebViewFactory.getFactoryClass(WebViewFactory.java:146)
at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:109)
at android.webkit.WebView.getFactory(WebView.java:2202)
at android.webkit.WebView.ensureProviderCreated(WebView.java:2197)
at android.webkit.WebView.setOverScrollMode(WebView.java:2256)
at android.view.View.<init>(View.java:3843)
at android.view.View.<init>(View.java:3954)
at android.view.ViewGroup.<init>(ViewGroup.java:513)
at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
at android.webkit.WebView.<init>(WebView.java:553)
at android.webkit.WebView.<init>(WebView.java:498)
at android.webkit.WebView.<init>(WebView.java:481)
at android.webkit.WebView.<init>(WebView.java:468)
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:614)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:689)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:748)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:933)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
at com.mypackage.drawer.fragments.Myfragment.createContentView(Myfragment.java:50)
at com.externalpackage.app.ExternalFragment.onCreateView(ExternalFragment.java:115)
at com.externalpackage.app.LocationExternalFragment.onCreateView(LocationExternalFragment.java:65)
at com.mypackage.drawer.fragments.Myfragment.onCreateView(Myfragment.java:55)
at android.app.Fragment.performCreateView(Fragment.java:2114)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:904)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1064)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1884)
at android.app.Activity.performCreateCommon(Activity.java:6492)
at android.app.Activity.performCreate(Activity.java:6521)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
- können Sie nach
MyEmptyStyle
und kompletten stacktrace der exception aus ? - wie gesagt
MyEmptyStyle
ist eine leere Stil, siehe den edit für den stacktrace NameNotFoundException: com.google.android.webview
Sie haben es nicht installiert. Es ist wohl ein custom-rom, imo- idk, wahrscheinlich ist es richtig, aber ich kann sehen, dass das Telefon ist nicht verwurzelt, als ich erwartet hatte..
- Was für ein system betreibst du? Es scheint, dass Sie nicht google-Pakete in ROM.
- wie Sie sehen können, in meiner Frage, war es Android 5.
- weißt du (vielleicht haben Sie etwas gefunden, ähnlich wie in der Vergangenheit), wenn das problem auf, dass bestimmtes Gerät oder alle samsung galaxy s6 edge?
- Überprüfen Sie heraus diesen post sieht ein bisschen wie das gleiche Problem: stackoverflow.com/questions/29575313/...
- Ich habe keine einschlägige Erfahrung mit diesem Gerät, und ich glaube nicht, dass Sie so crazy (im Samsung) strip android webkit entfernt. Daher mein Fazit - custom rom
- Dank fand ich es gar nicht vor, es scheint einen kleinen bug mit dem samsung galaxy und android 5 wenn webview öffnet zu früh.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass etwas seltsames aufgetreten, wenn die app aufblasen der WebView, könnte alles sein.
Für die
NameNotFoundException: com.google.android.webview
kann ich ableiten, dass könnte ein problem mit der Google-Pakete (Der Benutzer könnte mit einem custom ROM und nicht mit Ihnen installiert.)Wenn du mehr info über das terminal mit dem Fehler werde ich sagen, dass Sie gehen, aber Sie haben, um zu sehen, der Anteil der Nutzer/users_with_this_error, die Sie haben. Dann könnte man sehen, ob es für Sie sinnvoll die Arbeit in diesem Problem sind oder nicht.
Vom breakline Kommentar:
Überprüfen Sie heraus diesen post sieht ein bisschen wie das gleiche Problem: NameNotFoundException webview
Ich habe den gleichen Fehler auf meinem crashlytics.
Nach einigen Recherchen auf Google, es scheint, dass dies geschehen kann, wenn der Benutzer hat keine webview auf dem Telefon installiert.
Das klingt seltsam, wie die webview ist ein system-Paket, aber es ist ein Fehler, wo es eigentlich möglich ist, wenn die webview-Paket aktualisiert wird, während der Benutzer mit der app.
Es funktioniert nicht auf allen Handys, so dass es reproduziert werden kann, auf einige bestimmte Geräte (ich denke, Samsung diejenigen meistens...), aber nicht auf andere.
Ich erinnere mich nicht genau, den Schritt tun zu reproduzieren, sondern etwas wie:
Nicht sicher, wie Sie mit der Situation umgehen.
Ich denke, man kann schauen, ob das Paket vorhanden ist oder registrieren, um benachrichtigt zu werden, auf Paket-updates die app neu zu laden.
In meinem Fall ist es wirklich eine Ecke Fall und passiert einmal oder zweimal, ich glaube nicht, dass es benötigt, um Arbeit auf die Behebung des Problems. Wenn es öfter vorkommt, vielleicht sind einige Aktionen nötig sind.
Ich hatte dasselbe problem, und ich löste dieses problem durch die änderung seines Designs in manifest
Als @simon-ninon gesagt, das ist die Art, wie ich implented in meiner app.
In der NoPackageFoundActivity, können Sie den Benutzer auf den Playstore zum herunterladen der webview-Paket.