简体   繁体   English

加载webview时出错类android.webkit.WebView时出错

[英]Error inflating class android.webkit.WebView when loading webview

I've never encountered this problem before, and my setup is pretty much the same as previous occasions. 我之前从未遇到过这个问题,而且我的设置与以前的场景几乎相同。

The error its self is: 其自身的错误是:

android.view.InflateException: Binary XML file line #7: 
    Error inflating class android.webkit.WebView

I am launching a WebView in an XML file like so: 我在XML文件中启动WebView ,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <WebView
        android:id="@+id/facebookWebview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingBottom="0dp"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:paddingTop="0dp" />

</RelativeLayout>

I am using tab fragments, and the fragment that launches the xml file is like so: 我正在使用制表符片段,启动xml文件的片段是这样的:

public class FragmentTab1 extends Fragment{

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.tabfacebook, container, false);

        // allocate and instanciate webview
        WebView webView = (WebView) view.findViewById(R.id.facebookWebview);
        webView.getSettings().setJavaScriptEnabled(true);

        // load fb url into it
        webView.loadUrl("https://www.facebook.com/urlinhere");

        webView.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                Log.d("TAG", " ==> " + url);
                view.loadUrl(url);
                return true;
            }

        });

        return view;
    }
}

Again, this is as I have always done it. 再一次,这就像我一直这样做的那样。 I have commented out the bulk of this code to see if the problem is here, however it is in the XML file not the .java file. 我已经注释掉了大部分代码,看看问题是否在这里,但它在XML文件中不是.java文件。

Any suggestions? 有什么建议么?

EDIT: Entire stack trace 编辑:整个堆栈跟踪

09-07 09:19:06.870    1150-1150/ourpackage.com.ourpackage E/WebViewFactory﹕ Chromium WebView does not exist
09-07 09:19:06.910    1150-1150/ourpackage.com.ourpackage E/WebViewFactory﹕ Chromium WebView does not exist
09-07 09:19:06.910    1150-1150/ourpackage.com.ourpackage D/AndroidRuntime﹕ Shutting down VM
09-07 09:19:06.910    1150-1150/ourpackage.com.ourpackage W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb1a46d70)


android.view.InflateException: Binary XML file line #7: Error inflating class android.webkit.WebView
            at android.view.LayoutInflater.createView(LayoutInflater.java:620)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:57)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at ourpackage.com.ourpackage.FragmentTab1.onCreateView(FragmentTab1.java:22)
            at android.app.Fragment.performCreateView(Fragment.java:1701)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1063)
            at android.app.BackStackRecord.run(BackStackRecord.java:684)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1448)
            at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5026)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.reflect.InvocationTargetException
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:57)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at ourpackage.com.ourpackage.FragmentTab1.onCreateView(FragmentTab1.java:22)
            at android.app.Fragment.performCreateView(Fragment.java:1701)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1063)
            at android.app.BackStackRecord.run(BackStackRecord.java:684)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1448)
            at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5026)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsupportedOperationException
            at com.android.webview.nullwebview.NullWebViewFactoryProvider.createWebView(NullWebViewFactoryProvider.java:41)
            at android.webkit.WebView.ensureProviderCreated(WebView.java:2058)
            at android.webkit.WebView.setOverScrollMode(WebView.java:2116)
            at android.view.View.<init>(View.java:3461)
            at android.view.View.<init>(View.java:3517)
            at android.view.ViewGroup.<init>(ViewGroup.java:470)
            at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:52)
            at android.webkit.WebView.<init>(WebView.java:498)
            at android.webkit.WebView.<init>(WebView.java:475)
            at android.webkit.WebView.<init>(WebView.java:455)
            at android.webkit.WebView.<init>(WebView.java:444)
            at java.lang.reflect.Constructor.constructNative(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:57)
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            at ourpackage.com.ourpackage.FragmentTab1.onCreateView(FragmentTab1.java:22)
            at android.app.Fragment.performCreateView(Fragment.java:1701)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
            at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1063)
            at android.app.BackStackRecord.run(BackStackRecord.java:684)
            at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1448)
            at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5026)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
            at dalvik.system.NativeStart.main(Native Method)

I have checked my SDK Manager and everything is up to date in there 我检查了我的SDK Manager,其中的所有内容都是最新的

Credit to Tom R for the answer. 感谢Tom R的答案。

In case anybody else encounters a similar problem, check what emulator you are running. 如果其他人遇到类似的问题,请检查您正在运行的模拟器。

It appears I was running the emulator for Android Wear, more info can be found here on this if you are unaware . 看来我正在为Android Wear运行模拟器, 如果您不知道,可以在此处找到更多信息

It was fixed by changing this to just the standard ARM CPU from Wear ARM 通过将其更改为Wear ARM的标准ARM CPU来解决此问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM