呃,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个小时里让我疯了。
答案 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);