android.content.ActivityNotFoundException: - PullRequest
       5

android.content.ActivityNotFoundException:

21 голосов
/ 08 августа 2010

Я получаю это исключение, когда пытаюсь вызвать действие из другого. Полное исключение -

android.content.ActivityNotFoundException: не удалось найти явный класс активности {com.x.y / com.x.y.class};

Я делаю intent.setClass("com.x.y","com.x.y.className"), где className - это название моего класса активности, а com.x.y - это пакет, в котором он находится.

Мой AndroidManifest.xml имеет следующее содержимое:

<activity android:name="com.x.y.className" android:label="@string/app_name">

Я что-то упустил?

Ответы [ 23 ]

0 голосов
/ 08 марта 2013

Да, у меня тоже есть эта проблема. Я обновил проект. А потом все отлично работает.

0 голосов
/ 19 ноября 2011

У меня была такая же проблема. Я попробовал все, кроме ошибки, с которой я позже разобрался, было то, что между двойными кавычками и именем моего класса оставался пробел. Должно быть: intent.setClassName("com.x.y","com.x.y.className")

не

intent.setClassName("com.x.y","  com.x.y.className")
0 голосов
/ 24 марта 2012

Мое решение этой ошибки было добавить имя пакета перед именем в манифесте.

У меня были следующие виды деятельности:

  • id.scanner.main.A1

  • id.scanner.main.gallery.A2

Мой манифест содержал следующее:

<activity android:name=".A1" ....></activity>
<activity android:name=".A2" ....></activity>

Это решило проблему:

<activity android:name=".A1" ....></activity>
<activity android:name="gallery.A2" ....></activity>
0 голосов
/ 08 августа 2010

Глядя на документацию здесь что вы хотите:

intent.setClassName("com.x.y", "className");
0 голосов
/ 13 мая 2015

Это работает, если у вас есть объект Activity (который вам нужно запустить):

intent.setClassName(CallingActivity.this, activityToLaunch.getComponentName().getClassName());
0 голосов
/ 27 июня 2014

вы можете добавить этот код в manifiest.xml файл

action android:name="com.kaushalam.activity101activity.SecondActivity"
category android:name="android.intent.category.DEFAULT"
0 голосов
/ 21 января 2014

Это исключение также возникает, если вы включаете библиотеку в свое приложение и если библиотека вызывает действие, определенное в проекте библиотеки. В этом случае нам нужно объединить манифест библиотеки с манифестом вызывающего приложения.

С помощью ADT версии 20 мы можем сделать это, добавив приведенный ниже оператор в project.properties вызывающего приложения.

manifestmerger.enabled = true

0 голосов
/ 08 апреля 2014

Проверьте содержимое файла манифеста Android в папке bin проекта. Когда ваше приложение скомпилировано и упаковано, файл манифеста копируется в папку bin. В моем случае манифест в папке bin не соответствовал оригинальному манифесту. Вероятно, это ошибка Eclipse. Я вручную скопировал Манифест в папку bin, и он заработал.

0 голосов
/ 31 января 2012

Перезапустите Eclipse и снова проверьте свой Manifestfile.Если вы обнаружите, что отсутствует соответствующая активность, добавьте ее и попробуйте снова.Это решило мою похожую проблему.

0 голосов
/ 07 января 2015

У меня тоже такой же случай.Прочитав ответ thearson, я пересмотрел свою активность и обнаружил, что написал

public void onCreate(Bundle s)

Но на самом деле это должно быть

protected void onCreate(Bundle s)

И это работает сейчас!

...