Android: невозможно найти явный класс активности ... startActivity из PreferenceActivity - PullRequest
8 голосов
/ 30 октября 2011

Я пытаюсь начать новое действие с 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 isмой 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);
   }    
}

... Я не знаю, что делать.Есть идеи?

Ответы [ 5 ]

7 голосов
/ 30 мая 2012

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

Вы должны объявить активность в AndroidManifest.xml

    <activity
        android:name=".TheNameOfMyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
2 голосов
/ 26 мая 2014

При запуске действия из другого источника необходимо предоставить вашему файлу 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>
2 голосов
/ 18 декабря 2013

Для меня эта ошибка произошла, потому что я переместил файл своего класса активности в другой пакет, и по какой-то причине Eclipse неправильно его реорганизовал.Всегда используйте полностью квалифицированное имя для вашей деятельности и перепроверьте, что оно точное.

1 голос
/ 04 марта 2012

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

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

0 голосов
/ 04 июля 2016

У меня была та же проблема, что я написал - записал намерение внутри функции onCreate Сервиса или Макета.на самом деле это то, что сказал «не мог получить доступ к Explicity»

...