Eclipse for android:R的问题

时间:2012-07-31 18:50:31

标签: java android eclipse

我正在尝试使用位置应用,现在正处于故障排除阶段。我最后两个问题,他们都与R. blah blah有关。它说主要不是一个字段或无法解决和相同的消息,但使用mapview而不是main。以下是我的导入和问题所在的代码行。

代码:

    setContentView(R.layout.main);
    mapview = (MapView)findViewById(R.id.mapview);

进口:

    import android.R;
    import android.R.layout;
    import android.R.id;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.Toast;

    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;

我已经尝试了一切。我知道人们一直在说取出android.R,但这就是在jar文件中找到R.layout和R.id的地方。我右键单击了该文件夹并验证了代码。我去了Project / Clean并完成了。没运气。请帮忙?这是我的第一篇文章,所以如果格式错误,我很抱歉。我提前感谢你给我的任何帮助。 这是我的main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <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"
        android:text="Waiting for location..."
        android:id="@+id/lblLocationInfo"
    />
    <com.google.android.maps.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="0vFrUOhHMkbahT9zXqiz_DuNVWfPqlEyqcO8ftg"
    />
    </LinearLayout>

4 个答案:

答案 0 :(得分:2)

尝试删除该行:

import android.R;

然后做Build Clean,这可以解决问题。

答案 1 :(得分:2)

除非您使用来自Android的资源,否则您不需要行

import android.R; 
import android.R.Id;
import android.R.layout;

删除这些行

R正在解析到机器人R而不是com.yourpackage.yourproject.R

如果不需要,请删除导入。如果您需要在代码中明确表示。离。

ImageView.setDrawable(android.R.ic_menu_search); //uses an android resource

findViewById(R.id.mapView); //uses your resource file

setContentView(R.layout.activity_main); // must have an activity_main.xml file in YourProject/res/layout

修改

更改以下代码:

//import android.R;
//import android.R.layout;    //comment or delete these lines
//import android.R.id;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

setContentView(R.layout.activity_main);  //changed main to activity_main
mapview = (MapView)findViewById(R.id.mapview);

修改2

在MainActivity.java的最顶层,它应该有一行以package开头,该行的其余内容是什么?

在你的AndroidManifest.xml中还有一个包的条目,它说的是什么?

答案 2 :(得分:0)

R.java这是一个自行生成的文件,您需要重新构建它才能生成它,忽略警告并Build Clean您的文件

答案 3 :(得分:0)

这可能还与您的项目设置有关。我在创建新项目时通常会执行“订单和导出”选项。这样您就不必导入任何R. *包。

在Eclipse中,右键单击您的项目转到Properties -> Java Build Path -> Order and Export。只需确保yourprojectname / gen文件夹 yourprojectname / src文件夹。