1

嗨,我正在做一个 android gps 教程,但我遇到了一个我不明白的错误(我对 android dev 很陌生)。我得到了错误

position = (WebView) findViewById(R.id.activity_main);

activity_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);

    }
}

错误是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>
4

6 回答 6

6

将其更改为

position = (WebView) findViewById(R.id.webview);

还要确保你设置了正确的布局

setContentView(R.layout.activity_main);

原因是 的 idWebView不是R.id.activity_main。在您的情况下,它是R.id.webview. ID 值通过在您的 XML 布局中设置android:id="@+id/webview

另一个可能的问题。也删除import android.R;

于 2013-02-19T18:09:19.313 回答
2

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

import android.R;

它期望在预编译的 android.R 中找到与 R 相关的内容。您需要删除该行并导入包的 R 而不是预编译的 R。

解决方案

删除import android.R线。

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

于 2013-02-19T18:25:16.453 回答
1

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

它正在 android.R.id 中寻找 webview,但它位于 your_package_name.R.id 中。

于 2013-02-19T18:19:37.520 回答
0

删除导入android.R;

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

于 2013-02-19T18:35:27.647 回答
0
    View v=inflater.inflate(R.layout.fragment_two, container, false);
    WebView   mWebView = (WebView) v.findViewById(R.id.webView2);

我做到了:)我能够

于 2016-06-21T11:29:33.833 回答
0

我一直有同样的问题findViewByID(R.id.activity_main);,我花了几天时间尝试我在网上看到的所有解决方案。

我使用以下方法解决了这个问题:

我查看了 XML 文档并给了我的布局一个名称 (ID): activity_main

这行代码在我的 XML 文档的 TextView 中弹出:android:id="@+id/activity_main".

立即,我停止了这个activity_main问题。

注意:我也没有import.android.R statement.

于 2018-05-29T18:09:59.743 回答