2015-07-30 3 views
1

Я нашел отчет о сбоях в Crashlytics в Samsung SM G920F (Galaxy S6), версия 5.1.1 (на всех других устройствах я не получал такую ​​же ошибку).Ошибка раздувания WebView XML

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 

Это расположение моей WebView (стиль пустой стиль):

<?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" /> 

Это как я включить его в макете деятельности:

<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> 

Ошибка сообщила это ошибка XML, поэтому я предоставил весь код (упрощенный). Это единственный отчет, так что это произошло только один раз на этом устройстве, может кто-нибудь объяснить мне почему?

EDIT (полный 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) 
+0

Можете ли вы опубликовать 'MyEmptyStyle' и завершить stacktrace исключения? – Blackbelt

+0

@Blackbelt как я сказал 'MyEmptyStyle' - пустой стиль, см. Редактирование для stacktrace –

+1

' NameNotFoundException: com.google.android.webview', они не установлены. Это, вероятно, пользовательский rom, imo – Blackbelt

ответ

1

Кажется, что-то странное ocurred, когда приложение было надувать WebView, может быть что угодно.

Для NameNotFoundException: com.google.android.webview я могу вывести, что может быть проблема с пакетами Google (Пользователь может использовать пользовательский диск так и не устанавливали их.)

Если у вас больше информации о терминале с ошибкой Я скажу, что вы идете на это, но вы должны увидеть долю пользователей/users_with_this_error, которые у вас есть. Тогда вы могли бы увидеть, полезно ли это для вас в этой проблеме или нет.

Из комментария: в структурной линии проверить это сообщение, выглядит вроде как тот же вопрос: NameNotFoundException webview

+0

Я знаю, что если я не найду решение, эта пропорция настолько мала, что мне не нужно «ремонтировать» эту проблему, но мне было просто любопытно –

+0

Я отредактировал часть решения, чтобы уточнить больше сомнений, Я буду продолжать редактирование, пока не увижу ничего больше. – arodriguezdonaire

+0

Я улучшаю ваш ответ со ссылкой на комментарий breakline. Я не хочу, чтобы эта награда закончилась без каких-либо причин, поэтому я приму ваш ответ как «резюме» для других пользователей. –

1

Я получил ту же ошибку на моем crashlytics.

После некоторых поисков в Google кажется, что это может произойти, если у пользователя нет веб-просмотра, установленного на телефоне.

Это звучит странно, поскольку веб-просмотр представляет собой системный пакет, но есть ошибка, когда это действительно возможно, когда пакет веб-просмотра обновляется, когда пользователь использует приложение. Он не работает на всех телефонах, поэтому его можно воспроизвести на некоторых устройствах (я думаю, Samsung в основном ...), но не на других.

Я не помню точно шаг сделать его воспроизвести, но что-то вроде:

  • запустить приложение
  • пойти играть магазин и удалить обновления веб-просмотра
  • начала установки обновлений и вернитесь к приложению
  • на некоторых устройствах, в конце обновления перезагрузите приложение, и оно работает хорошо. На некоторых появляется ошибка, и если вы попытаетесь загрузить веб-просмотр, он сработает.

Не знаете, как с этим бороться. Я думаю, вы можете посмотреть, существует ли пакет или зарегистрироваться, чтобы получать уведомления об обновлениях пакетов для перезагрузки приложения. В моем случае это действительно угловой случай и случался один или два раза, я не думаю, что это требует работы по исправлению проблемы. Если это происходит чаще, возможно, некоторые действия необходимы.

+0

та же проблема для меня .. Как исправить это –

+1

Я не предоставил никаких исправлений на моей стороне лично. Я думаю, что у вас есть два способа: либо вы пытаетесь/поймаете setContentView: если он ломается из-за исключения, не найденного в пакете, то вы можете попытаться отобразить ошибку для клиента или просто перезагрузить приложение (не знаете, какое решение является наиболее подходящим). Или вы можете зарегистрировать приемник вещания на обновленном пакете и перезагрузить приложение для случая пакета веб-просмотра (https://stackoverflow.com/questions/30727953/android-app-update-broadcast) –

Смежные вопросы