Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android findViewById中存在错误_Android - Fatal编程技术网

Android findViewById中存在错误

Android findViewById中存在错误,android,Android,大家好,我正在做一个android gps教程,我遇到了一个我不理解的错误(我对android开发人员来说是个新手)。我得到的错误是 position = (WebView) findViewById(R.id.activity_main); <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layo

大家好,我正在做一个android gps教程,我遇到了一个我不理解的错误(我对android开发人员来说是个新手)。我得到的错误是

position = (WebView) findViewById(R.id.activity_main);
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
其中
活动\u main
似乎是问题所在。有人能解释一下问题是什么吗?谢谢

import android.R;
import android.app.Activity;
import android.location.Location;
import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;

public class GPSActivity extends Activity
{
    WebView position;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_item);

        position = (WebView) findViewById(R.id.activity_main);
        position.getSettings().setJavaScriptEnabled(true);

    }

    public void onLocationChanged(Location loc)
    {
        String Text ="My current location is: " + "Latitud="
                + loc.getLatitude() + "Longitud =" + loc.getLongitude();
        Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_LONG).show();

        String url ="http://maps.google.com/staticmap?center="
                + loc.getLatitude() +loc.getLatitude()
                + "&zoom=14&size=512x512&maptype=mobile/&markers="
                + loc.getLatitude() + loc.getLongitude();
        position.loadUrl(url);

    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
错误是activity main无法解决或不是字段,我认为id在activity_main中,但如果我错了,请更正我,在这里

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>

将其更改为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
position = (WebView) findViewById(R.id.webview);
还要确保设置了正确的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
setContentView(R.layout.activity_main);
原因是
WebView
的id不是
R.id.activity\u main
。在您的情况下,它是
R.id.webview
。ID值通过
android:ID=“@+ID/webview

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
另一个可能的问题。删除
导入android.R;

将其更改为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
position = (WebView) findViewById(R.id.webview);
还要确保设置了正确的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
setContentView(R.layout.activity_main);
原因是
WebView
的id不是
R.id.activity\u main
。在您的例子中,它是
R.id.WebView
。id值通过
android:id=“@+id/WebView
在XML布局中设置

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
另一个可能的问题。删除
导入android.R也一样。

位置=(WebView)findViewById(R.id.WebView)删除导入android.R后

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
它正在android.R.id中查找webview,但它位于您的_包_name.R.id.

position=(webview)findViewById(R.id.webview)删除导入android.R后

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>

它正在android.R.id中查找webview,但它位于您的\u包\u name.R.id.

这就是它找不到您的资源的原因:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
import android.R;
它希望在预编译的android.R中找到与R相关的东西。您需要删除该行并导入包的R,而不是预编译的R

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
解决方案 删除导入android.R的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>

还要确保您的项目在构建过程中编译并生成R.java。

这就是它找不到您的资源的原因:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
import android.R;
它希望在预编译的android.R中找到与R相关的东西。您需要删除该行并导入包的R,而不是预编译的R

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
解决方案 删除导入android.R的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
还要确保您的项目能够在构建过程中编译并生成R.java。

删除
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
导入android.R

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
您可能仍然会收到无法识别的错误。这是因为您位于默认包中,而不是项目包中。您可以通过导入.R来绕过它 所以如果你的包名是com.GPS 然后导入com.GPS.R

删除
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
    View v=inflater.inflate(R.layout.fragment_two, container, false);
    WebView   mWebView = (WebView) v.findViewById(R.id.webView2);
导入android.R

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
您可能仍然会收到无法识别的错误。这是因为您位于默认包中,而不是项目包中。您可以通过导入.R来绕过它 所以如果你的包名是com.GPS 然后导入com.GPS.R

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
    View v=inflater.inflate(R.layout.fragment_two, container, false);
    WebView   mWebView = (WebView) v.findViewById(R.id.webView2);
我做到了:) 我能

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我做到了:)
我能够

我在
findViewByID(R.id.activity\u main)上也遇到了同样的问题,我花了好几天的时间尝试我在网上看到的所有解决方案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我使用以下方法解决了问题:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我转到XML文档并给布局命名(ID):
activity\u main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
这行代码在我的XML文档的文本视图中弹出:
android:id=“@+id/activity\u main”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我立即停止了
活动\u main
问题

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>

注意:我也没有
import.android.R语句

我在
findViewByID(R.id.activity\u main)上也遇到了同样的问题,我花了好几天的时间尝试我在网上看到的所有解决方案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我使用以下方法解决了问题:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我转到XML文档并给布局命名(ID):
activity\u main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
这行代码在我的XML文档的文本视图中弹出:
android:id=“@+id/activity\u main”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>
我立即停止了
活动\u main
问题

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>


注意:我也没有import.android.R语句

您能告诉我们错误是什么吗?您能发布包含该id的XML文件吗?是
活动列表项
XML文件中声明的
活动列表项
吗?为了帮助您,我们还需要错误输出和XML文件哦,您将要删除import android.R语句,因为它将在android.R中查找id,但它们将在您的\u package\u name.RCan中。您能告诉我们错误是什么吗?您能发布包含该id的XML文件吗?它是
activity\u list\u main
activity\u list\u item
XML文件中声明的
来帮助您解决问题,我们需要错误输出和XML文件。此外,您需要删除import android.R语句,因为它将在android.R中查找ID,但它们将在您的_package_name.R中。但是,我得到的是“webview无法解析或不是字段”,现在请确保使用正确的布局。是您发布的XML
activity\u main.XML
?尝试
setContentView(R.layout.activity\u main)在我更改的同时,我得到了与activity_main相同的错误,是的,那就是activity_main.xml在删除
import android.R声明?你的解释真的帮助了我。人们什么时候才能停止在不同的地方给同一个东西命名呢?这是难以置信的没有帮助。例如,如果他们将ID称为“activity\u main\u ID”或“activityMainXMLID”或其他名称之外的任何其他名称,这就是activity\u main谢谢,但我得到的是“webview无法解析或不是字段”,现在请确保使用了正确的布局。是您发布的XML
activity\u main.XML
?尝试
setContentView(R.layout.activity_
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />
    <Webview
     android:id="@+id/webview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     />

</LinearLayout>