无法在Android Studio上解析符号webView

时间:2016-11-08 17:51:57

标签: android webview

我正在尝试使用HTML / CSS / Javascript创建一个应用程序,我在MainActivity.java中运行它:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView webView = (WebView)findViewById(R.id.webView); #The line in question
        webView.loadUrl("file:///android_asset/www/index.html");
    }
}

我遇到的问题是在倒数第二行中使用R.id.webView。它说它出于某种原因无法解析符号,有人知道为什么吗?

我已经尝试过的事情:

  1. 导入

    import android.webkit.WebView;
    import android.webkit.WebViewClient; (dont need this one but still got it)
    
  2. 更改webViewWebViewId代替id等)中字词的大写字母

  3. 编辑:添加布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="g24.guidedproject.MainActivity">
    
        <WebView android:layout_height="match_parent"
            android:layout_width="match_parent" />
    </RelativeLayout>
    

    任何人都可以帮忙吗?

4 个答案:

答案 0 :(得分:4)

由于您还没有发布您的XML布局,我只能猜测,但它最有可能是您的预编译R.java类不能保留对该ID的引用,因此它无法解决,直到您执行以下任一操作。

  1. 在这种情况下,请始终在Android Studio中使用Build -> Rebuild Project。最后,请使用File -> Invalidate Caches / Restart

  2. 如果上述方法无法解决问题,请确保正确宣布resource id

  3. <WebView android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></WebView
    

    请注意 + 介于@id之间。这样可以确保创建ID并将其放入R.java文件中。确保之后重新编译。

    有关详细信息:建议您阅读Android中的以下API指南:https://developer.android.com/guide/topics/ui/declaring-layout.html

答案 1 :(得分:3)

WebView xml标记中没有id属性。加 android:id="@+id/webView"到它。

这将使它看起来像:

<WebView android:id="@+id/webView"
        android:layout_height="match_parent"
        android:layout_width="match_parent" />

答案 2 :(得分:1)

您可以使用以下解决方案:

WebView view=(WebView) this.findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true);

答案 3 :(得分:0)

when(outputStream.close()).doThrow(new IOException())

参考 https://layoutxml.blogspot.com/