2010-08-20 17 views
18

Estoy usando startActivity para llamar a otra actividad y obtengo la "Excepción de actividad no encontrada". Aquí está mi código:Android - Actividad no encontrada Excepción

TextView textView = (TextView) itemClicked; 
    String strText = textView.getText().toString(); 
    String key = "symptom"; 
    Intent mIntent = new Intent(symptomActivity.this, symptomRemedyActivity.class); 
    Bundle mBundle = new Bundle(); 
    mBundle.putString(key, strText); 
    mIntent.putExtras(mBundle); 
    startActivity(mIntent); 

Aquí está la salida Logcat:

INFO/ActivityManager(59): Displayed activity com.android.homeopathy/.HomeopathyActivity: 5542 ms (total 39089 ms) 
INFO/ARMAssembler(59): generated scanline__00000077:03545404_00000004_00000000 [ 47 ipp] (67 ins) at [0x3283e0:0x3284ec] in 627000 ns 
INFO/ActivityManager(59): Starting activity: Intent { cmp=com.android.homeopathy/.symptomActivity } 
INFO/ActivityManager(59): Displayed activity com.android.homeopathy/.symptomActivity: 2706 ms (total 2706 ms) 
INFO/ActivityManager(59): Starting activity: Intent { cmp=com.android.homeopathy/.symptomRemedyActivity (has extras) } 

Aquí está la salida de la ventana de depuración:

Thread [<1> main] (Suspended (exception ActivityNotFoundException)) 
Instrumentation.checkStartActivityResult(int, Object) line: 1404  
Instrumentation.execStartActivity(Context, IBinder, IBinder, Activity, Intent, int) line: 1378 
symptomActivity(Activity).startActivityForResult(Intent, int) line: 2817  
symptomActivity(Activity).startActivity(Intent) line: 2923 
symptomActivity$1.onItemClick(AdapterView, View, int, long) line: 67  
ListView(AdapterView).performItemClick(View, int, long) line: 284 
ListView.performItemClick(View, int, long) line: 3382 
AbsListView$PerformClick.run() line: 1696 
ViewRoot(Handler).handleCallback(Message) line: 587 
ViewRoot(Handler).dispatchMessage(Message) line: 92 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4627  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 521 
ZygoteInit$MethodAndArgsCaller.run() line: 868 
ZygoteInit.main(String[]) line: 626 
NativeStart.main(String[]) line: not available [native method] 

symptomRemedyActivity es otra actividad en mi proyecto. ¿Hay algo que deba hacer como importar symptomRemedyActivity para que startActivity pueda ver symptomRemedyActivity, para eliminar esta "Excepción de actividad no encontrada"?

+0

Si estaba utilizando Eclipse y/o mirando el Logcat sería preguntará si usted ha declarado en el manifiesto – Falmarri

+0

Estoy usando Eclipse con Logcat. Logcat no dice nada sobre el manifiesto. He enumerado el resultado de logcat en mi pregunta junto con el resultado de la ventana de depuración. –

Respuesta

36

Sé que esta es una publicación anterior, pero está en la parte superior de la búsqueda de Google en este momento, así que para cualquiera que venga más tarde: ActivityNotFound puede ser causada por excepciones no controladas en su onCreate en la actividad que está intentando crear. Me tomó un tiempo darme cuenta de que estaba causando un nullPointerException allí, porque no lo estaba buscando.

+0

Y esto es exactamente lo que también me estaba haciendo caos :-) – nemesisfixx

+1

Rechazaría esta respuesta una docena de veces si pudiera. Perdí tanto tiempo haciendo doble, triple y cuádruple comprobación de que había declarado correctamente mi actividad en el manifiesto de la aplicación cuando el problema real era el que describiste aquí. – BradVoy

33

¿Ha enumerado la actividad (symtomRemedyActivity) dentro de su archivo AndroidManifest.xml?

+0

No, no lo hice. Voy a intentar eso. –

+0

Agregué actividad (symtomRemedyActivity) dentro de mi archivo AndroidManifest.xml, realicé una actualización y sigo recibiendo el error. –

+0

Este es exactamente el problema que estaba teniendo. – Jahmic

8

Asegúrese de que ha añadido lo siguiente al archivo de manifiesto

<activity 
     android:name=".YourActivity" 
     > 
    </activity> 
6

pegado con el mismo error durante una hora sólo para darse cuenta de que tengo que limpiar y construir de nuevo. Aparentemente, algunas veces los cambios en xml no se reflejan hasta que los limpiamos y reconstruimos.

0

Si sus dos actividades (symptomActivity y symptomRemedyActivity) están en paquetes diferentes, debe declarar en el Manifiesto de Android el nombre del paquete.

0

yo estaba tratando de iniciar el servicio con startActivity(intent) y la misma excepción salido. Para ejecutar servicio, utilice startService(intent)

2

Por supuesto que se olvidó de declarar la actividad en el archivo de manifiesto AndroidManifest.xml de la siguiente manera (se necesita inyectar el valor que en realidad nos):

<activity 
     android:name="symptomRemedyActivity" 
     android:label="@string/title_activity_ symptomRemedy" 
     android:parentActivityName="MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="MainActivity" /> 
    </activity> 
0

No sólo necesita agregar su actividad en AndroidMainifest.xml de esta manera:

<activity 
     android:name=".MyActivity" 
     ></activity> 

pero también debe confirmar la ruta del paquete.

Por ejemplo, mi actividad está en el paquete com.demo. El jefe de AndroidMainifest debe escribir la misma ruta del paquete, así:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.demo" 
    android:versionCode="1" 
    android:versionName="1.0" > 
0

Además de la respuesta que Unfrog ha dado.

Una forma de obtener el NullPointerException es ejecutar un código que se refiere a las partes de vista antes del setContentView().

0

Varias etiquetas de aplicación en Manifiesto pueden causar esto.

0
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.salvopaverani.databes" 
android:versionCode="1" 
android:versionName="1.1" > 

En el archivo de manifiesto, trato de cambiar el android: versionName de 1.0 a 1.1 y todo está bien.

0

Tuve el mismo problema. Eliminé la carpeta bin y lib del directorio del proyecto, recreé la carpeta libs y las libs pegadas. Todo comenzó a funcionar. Fue v4 lib que fue el culpable.

0

Trate de añadir a la actividad AndroidManifest.xml

<activity android:name=".MyActivity" /> 
Cuestiones relacionadas