Android:无法从PreferenceActivity中查找显式活动类… startActivity

我试图从PreferenceActivity开始一个新的活动。 但是,“无法find明确的活动类”失败,您是否在AndroidManifest.xml中声明了这个活动?

那么,是的,我宣布它:

<application [......] android:debuggable="true"> <activity android:name=".AlarmSettings" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".FlashLightActivity"></activity> <receiver android:name="AlarmReceiver" android:process=":remote" > </receiver> </application> 

AlarmSettings是我的PreferenceActivity。 AlarmSettings以这种方式调用FlashLightActivity:

 Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class); startActivity(i); 

这是FlashLightActivity:

 public class FlashLightActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.flashlight); } } 

… 我不知道该怎么办。 有任何想法吗?

Solutions Collecting From Web of "Android:无法从PreferenceActivity中查找显式活动类… startActivity"

将海报的解决scheme复制到答案部分,以便将其从“未答复”filter中删除:

这不是我的代码的问题,但与Eclipse和Android SDK。 经过一番研究,我在Eclipse中做了“帮助 – >检查更新”,现在一切正常。

我也有这个问题。 如果仔细阅读logcat上的错误,您将知道该怎么做。

您必须在AndroidManifest.xml中声明该活动

  <activity android:name=".TheNameOfMyActivity" android:label="@string/app_name" > <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

对于我来说,这个错误发生是因为我将我的活动类文件移动到了不同的包中,而且由于某些原因,Eclipse没有正确地重构它。 请始终使用完全合格的名称作为您的活动,并仔细检查其是否准确。

当从另一个内部启动一个活动时,你需要为你的AndroidManifest文件提供父子关系,以确保启动的活动将返回结果给你,需要父活动。 例,

 <activity android:name="ACTIVITY TO BE STARTED" android:label="@string/TITLE" android:screenOrientation="landscape" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="ACTIVITY STARTED FROM?RETURNING TO" /> </activity> 

我有同样的问题,我所做的是在服务或布局的onCreate函数内写入Intent声明。 实际上这就是说“无法访问明确”