Android:无法从PreferenceActivity中找到显式活动类... startActivity

dan*_*eds 8 java android preferenceactivity android-activity

我正在尝试从PreferenceActivity开始一个新的Activity.但是,它失败了"无法找到显式活动类.您是否在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>
Run Code Online (Sandbox Code Playgroud)

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

Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

这是FlashLightActivity:

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

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

小智 7

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

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

    <activity
        android:name=".TheNameOfMyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

  • 如果你仔细阅读这个问题,他已经在清单中宣布了! (23认同)

Dre*_*awn 0

将发帖者的解决方案复制到答案部分,以便将其从“未回答”过滤器中删除:

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