无法找到明确的活动类Android

时间:2016-02-14 22:09:42

标签: java android

呃,StackOverflow上的这么多帖子与我的问题类似但没有修复它:/

我目前正在学习android开发。在我的主要活动中,我做了:

public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
     switch(item.getItemId()){
         case R.id.changeName:
             Intent intent = new Intent(this, PreferenceActivity.class);
             startActivityForResult(intent, 1);
             return true;
     }
     return false;
}

Preference.java是一个新创建的活动,除了自动创建的onCreate方法外,其中没有任何内容。错误是:

  android.content.ActivityNotFoundException: Unable to find explicit activity class {com.package.chat.oneway.client/android.preference.PreferenceActivity}; have you declared this activity in your AndroidManifest.xml?

我的机器人清单有:

 <application
    android:allowBackup="false"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name">
    <activity
        android:name=".ChatClient"
        android:label="@string/app_name" />
    <activity android:name=".Parent">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".PreferenceActivity"></activity>
</application>

如您所见,.PreferenceActivity在清单中。 ChatClient和PreferenceActivity活动的包是相同的com.package.chat.oneway.client包。它在过去的4个小时里让我疯了。

1 个答案:

答案 0 :(得分:2)

  

如您所见,.PreferenceActivity在清单中。

是的,确实如此。但是,这不是您Intent正在使用的内容。如果您仔细查看错误消息,您会发现Intent正在使用android.preference.PreferenceActivity

当您重用现有的类名时。有无数可能的类名。将你的名字重命名为其他东西,你可以在将来避免这类问题。

或者,如果您完全准备将您的班级命名为PreferenceActivity,请从您创建import android.preference.PreferenceActivity的班级中删除Intent语句。或者,将Intent更改为:

Intent intent = new Intent(this, com.package.chat.oneway.client.PreferenceActivity.class);