Android第二个活动错误

时间:2013-08-07 11:58:06

标签: android google-maps

所以我的应用程序包含显示一些文本的第一个活动,在操作栏上有一个文件菜单,我在其中放置了我的位置选项。

我使用onOptionItemSelected在mainActivity中调用另一个活动,如下所示:

    public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_photo:
            openPhoto();
            return true;
        case R.id.action_video:
            openVideo();
            return true;
        case R.id.action_map:
            Intent intent = new Intent(this, GPSTracker.class);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
清单中的

我声明第二个活动如下:

     <activity
        android:name="com.example.locateme.GPSTracker"
        android:label="@string/app_name" > 
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>

并在GPSTracker.java中写道:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gpstracker);
}

还有我的代码来查找位置。 我正在运行应用程序,当我按My Location选项时应用程序崩溃。

Here are the logcat errors after removing intent for GPS activity

full code of the app is here,以防可能有我错过的东西。 我是以错误的方式打电话给第二项活动吗?

2 个答案:

答案 0 :(得分:1)

首先,在您的Manifest.xml中删除您的GPS活动的intent-filter,此处您已将两个活动(Main和GPS)设置为启动器。仅将一个活动设置为LAUNCHER和MAIN。然后很高兴看到LogCat输出知道它崩溃的原因

答案 1 :(得分:1)

java.lang.InstantiationException: can't instantiate class com.example.locateme.GPSTracker; no empty constructor

是非常明显的错误。

在GPSTracker课程的某个地方,你有一个像

这样的定义
public GPSTracker(SomeClass referenceName) {
     //...
}

应删除此代码块或将其替换为不带参数的构造函数。第一个选项如果首选:使用onCreate作为构造函数。