2012-06-06 21 views
16

consigo este error:android.content.ActivityNotFoundException: No se pudo encontrar la clase de actividad explícita

06-06 10:45:19.685: E/AndroidRuntime(554): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.Android.myApp/com.Android.myApp.Facebook.Example}; have you declared this activity in your AndroidManifest.xml? 

Pero la he declarado en mi archivo de manifiesto. ¿Cuáles podrían ser las otras razones para tal excepción?

Mi manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.Android.myApp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="4" /> 

    <uses-feature android:name="android.hardware.camera" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Light" > 

     <activity 
      android:name=".SignUpActivity" 
      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=".SignInActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".HomeActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".selectCityActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".FeedListViewActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".SearchActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".IWantActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".DateActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ShareActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ShareProductActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".SharePriceActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ShareStoreActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ProfileActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ShowMapActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".ParticularEntryActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".MyLocationActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".MapMarkerActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".BarcodeActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".BarcodeResult" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".FeedbackActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".SplashActivity" 
      android:label="@string/app_name" /> 
     <activity 
      android:name=".Example" 
      android:label="@string/app_name" /> 

     <uses-library android:name="com.google.android.maps" /> 
    </application> 

</manifest> 
+1

Tal vez la clase de la biblioteca no se refiera correctamente –

+0

cómo asegurarse de que se refiere correctamente ?? ... está ahí en las propiedades -> Biblioteca. – Housefly

+0

muestra tu archivo Manifest. –

Respuesta

32

Se ha declarado en nombre del paquete en el manifiesto como com.Android.myApp y Actividad Nombre .Example .So Android buscarla desde com.Android.myApp.Example. Sin embargo, su actividad está residiendo en "com.Android.myApp/com.Android.myApp.Facebook.Example" .Así dar el nombre de la actividad como .Facebook.Example o ruta completa como se indica a continuación En el manifiesto

<activity 
       android:name="com.Android.myApp.Facebook.Example"> 

</activity> 
+0

Tag nombre del atributo tiene el carácter no válido '/'. – Housefly

+0

Ver la respuesta actualizada – Rasel

+0

Sí, funcionó – Housefly

2

Desde su excepción cuál es su clase - Facebook o Example Porque, declarado en el paquete en el manifiesto como com.Android.myApp Pero, por facebook actividad que declaró com.android.myApp.Facebook.Example Y,

Si ejemplo es significa que su actividad, debe declarada su actividad como com.Android.myApp.Facebook.Example Debido a que, a partir de su paquete diferente o el nombre de la actividad como Facebook.Example Así que mejor puede declarar su actividad, como a continuación -

<activity 
     android:name="com.Android.myApp.Facebook.Example" 
     android:label="@string/app_name" /> 
6

también se puede utilizar

<activity 
     android:name=".Facebook.Example" 
     android:label="@string/app_name" /> 
3

Tengo una variación a este problema. Estaba lanzando una actividad llamada "Configuraciones" y obteniendo el mismo error y haciendo todos los cambios sugeridos al manifiesto no solucionando el problema.

La cosa es que, en la actividad de llamadas, también estaba usando/importando android.provider.Settings, por lo que puedo ver al intentar iniciar la actividad que se estaba confundiendo entre los dos. Así que cambié esto en el código en lugar del manifiesto para incluir la ruta completa:

Intent launchScr = new Intent(this, com.foo.bar.Settings.class); 

Y funcionó. Por supuesto, la otra, y mejor, forma de resolver este problema en particular sería usar mejores nombres para mis actividades.

HTH cualquiera con esta variante del problema.

+0

En mi caso, escribí la ortografía de Activity wrong –

0

Esto funciona si tiene un objeto de actividad (que se necesita para poner en marcha):

intent.setClassName(CallingActivity.this, activityToLaunch.getComponentName().getClassName()); 
1

Sólo asegúrese de que su actividad está decorado con este atributo:

[Activity(Label = "Your App Name", MainLauncher=true)] 

Nota: Sólo Establecer MainLauncher si es necesario.

1

A veces, es debido a la existencia del mismo nombre de clase (segundo parámetro de la intención) en diferentes paquetes.

También encontré que esto ocurre cuando llamas a startService en lugar de llamar a startActivity y viceversa.

Cuestiones relacionadas