0

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

我用 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选项时应用程序崩溃。

这是删除 GPS 活动意图后的 logcat 错误

应用程序的完整代码在这里,以防我遗漏了什么。我是否以错误的方式调用第二个活动?

4

2 回答 2

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

是相当明显的错误。

在您的 GPSTracker 类中的某个地方,您有一个定义,例如

public GPSTracker(SomeClass referenceName) {
     //...
}

此代码块应删除或替换为不带参数的构造函数。如果愿意,第一个选项:onCreate用作您的构造函数。

于 2013-08-07T12:33:41.943 回答
1

首先,在您的 Manifest.xml 中删除您的 GPS 活动的意图过滤器,这里您已将两个活动(主要和 GPS)设置为启动器。仅将一个 Activity 设置为 LAUNCHER 和 MAIN。然后很高兴看到 LogCat 输出以了解它为什么会崩溃

于 2013-08-07T12:04:31.070 回答