2016-12-07 8 views
3

私は私を殺そうとしているこの問題があります。android.view.InflateExceptionクラスを膨張させるエラー。android.webkit.WebView

私のアプリケーションで毎回Lollipop(API 22)では、アプリケーションがクラッシュするwebviewを表示します。 このイベントに関連するアンドロイドデベロッパーコンソールに複数のクラッシュがあります。

ありません、それはアンドロイド4に動作することを言う必要が、6および7

(この記事の最後に掲載)スタックトレースを読むと、何かのバグ私

Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003 

私は内検索生成されたR.javaは運がなくても明らかにIDが存在しないためですが、試してみる価値がありました。

この問題を取り巻く状況は、ロリポップがウェブビューをどのように処理するかと関連しているようです。私はGDCのクラッシュレポーターで見つけたデバイスに基づいて、ロリポップで新鮮なAVDを始めました。問題を再現できます。

私を助けてください!


のフルスタックトレース:WebViewのを作成するための

android.view.InflateException: Binary XML file line #7: 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.rInflate(LayoutInflater.java:806) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
        at it.artecoop.ibreviary.WebViewFragment.onCreateView(WebViewFragment.java:67) 
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087) 
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113) 
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295) 
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) 
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682) 
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:541) 
        at android.os.Handler.handleCallback(Handler.java:739) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5254) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
       Caused by: java.lang.reflect.InvocationTargetException 
        at java.lang.reflect.Constructor.newInstance(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
        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.rInflate(LayoutInflater.java:806)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)  
        at it.artecoop.ibreviary.WebViewFragment.onCreateView(WebViewFragment.java:67)  
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087)  
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113)  
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)  
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)  
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)  
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:541)  
        at android.os.Handler.handleCallback(Handler.java:739)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:135)  
        at android.app.ActivityThread.main(ActivityThread.java:5254)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at java.lang.reflect.Method.invoke(Method.java:372)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  
       Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003 
        at android.content.res.Resources.getText(Resources.java:299) 
        at android.content.res.Resources.getString(Resources.java:385) 
        at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684) 
        at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608) 
        at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631) 
        at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:780) 
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:619) 
        at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:556) 
        at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:311) 
        at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:96) 
        at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:263) 
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:123) 
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:110) 
        at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144) 
        at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:107) 
        at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:260) 
        at android.webkit.WebView.<init>(WebView.java:554) 
        at android.webkit.WebView.<init>(WebView.java:489) 
        at android.webkit.WebView.<init>(WebView.java:472) 
        at android.webkit.WebView.<init>(WebView.java:459) 
        at java.lang.reflect.Constructor.newInstance(Native Method)  
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288)  
        at android.view.LayoutInflater.createView(LayoutInflater.java:607)  
        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.rInflate(LayoutInflater.java:806)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)  
        at it.artecoop.ibreviary.WebViewFragment.onCreateView(WebViewFragment.java:67)  
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087)  
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113)  
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)  
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)  
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)  
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:541)  
        at android.os.Handler.handleCallback(Handler.java:739)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:135)  
        at android.app.ActivityThread.main(ActivityThread.java:5254)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at java.lang.reflect.Method.invoke(Method.java:372)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  
+0

これはシステムの 'WebView'問題のようです。私は、エミュレータがそれを更新するかどうか、それがいつ更新されるかはわかりません。あなたはハードウェアを試しましたか? – CommonsWare

+0

@commonswareいいえ私は現在ロリポップを持っていません。しかし、クラッシュレポーターはこのために複数のエントリを表示しています。 – Valerio

答えて

3

てみ使用:

mWebView = new WebView(getActivity().createConfigurationContext(new Configuration())); 
0

あなたはXMLレイアウトからのWebViewを膨らませるしたい場合は、あなたがそれをラップすることができます素敵な小さなサブクラス(ikostet's answerに基づいて):

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) { 
     return context.createConfigurationContext(new Configuration()); 
    } 
} 
関連する問題