Android: невозможно найти явный класс активности … startActivity from the PreferenceActivity

Я пытаюсь запустить новую активность из PreferenceActivity. Однако сбой «Не удается найти явный класс активности. Вы объявили эту активность в своем 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: невозможно найти явный класс активности … startActivity from the PreferenceActivity"

Копирование решения плаката в раздел ответа, чтобы удалить его из фильтра «Без ответа»:

Это не проблема с моим кодом, но с Eclipse и Android SDK. После некоторых исследований я сделал «Справка -> Проверить наличие обновлений» в Eclipse, и теперь все работает.

У меня тоже была эта пробема. Если вы внимательно прочитаете ошибку на логарифме, вы будете знать, что делать.

Вы должны объявить активность в 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> 

У меня была та же проблема, что я и сделал, написал декларацию Intent внутри функции onCreate службы или макета. На самом деле это то, что сказал «не мог получить доступ к Объяснению»