ActivityNotFoundException (YES, esta actividad se declara en AndroidManifest.xml)
He encontrado unos cuantos hilos que informan de un problema similar, pero ninguno de ellos realmente ofrece algo que no he probado ya.
Una llamada tan inocente:
- Preferencias de número en la actividad de preferencias en Android
- RunTimeException en PreferenceFragment
- ¿Cómo obtener elementos (findViewById) para un diseño que se carga dinámicamente (setView) en un diálogo?
- Preferencias personalizadasCategorías
- PreferenciaActividad: guardar valor como entero
mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class));
Con lo siguiente en AndroidManifest.xml:
<application> <activity android:name="MyActivityLib" /> <activity android:name="com.example.baseapp.MyEditPreferences" android:label="@string/app_name"> </activity> </application>
Dispara la siguiente excepción:
06-14 14:06:50.297: ERROR/AndroidRuntime(9272): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.baseapp.paypal/com.example.baseapp.MyEditPreferences}; have you declared this activity in your AndroidManifest.xml?
Lo que pasa es que este código funcionaba perfectamente antes de cambiarlo de un proyecto de aplicación monolítico a un proyecto de dos partes que se compone de un proyecto de biblioteca y un proyecto de aplicación.
El archivo AndroidManifest.xml es el que está en el proyecto de la biblioteca .
¿Qué debo hacer para eliminar esta ActivityNotFoundException
?
- Cambiar el color de texto PreferenceActivity
- Inicio de Configuración Actividad de Preferencias XML funciona en 2.x pero no en 4.x
- No puedo averiguar cómo usar un android PreferenciaActividad
- Ejemplo de MultiSelectListPreference
- Respondiendo a las actualizaciones de preferencias en Android
- El elemento ListView no permanecerá "seleccionado"
- ¿Cómo manejar texto largo en las preferencias de Android?
- Cómo cargar la misma preferencia de pantalla en el detalle PreferenceFragment
Acabo de solucionar el problema.
Todo lo que tenía que hacer era añadir el FQN al AndroidManifest.xml
del proyecto de la aplicación :
<activity android:name="com.example.baseapp.MyEditPreferences" android:label="com.example.baseapp.MyActivityLib:string/app_name"> </activity>
De hecho, he eliminado completamente cualquier referencia a MyEditPreferences
en el proyecto de la biblioteca AndroidManifest.xml
y todavía funciona.
También funciona con la sentencia startActivity 1-line original:
mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class));
Conclusión: Es la aplicación de AndroidManifest.xml
que importa, no de la biblioteca.
Tal vez esto funcionará?
Intent mIntent = new Intent(); mIntent.setClassName(mActivity, "com.example.baseapp.MyEditPreferences"); mActivity.startActivity(mIntent);
Si utiliza clases cuyos nombres están incluidos en un paquete de android (Configuración, Preferencias, Actividad, …), tendrá que poner esto:
Intent i = new Intent(this, <name_of_your_package>.classname.class);
Si no pone "name_of_your_package", el compilador pensará que se está refiriendo a la clase en el paquete android (android. *).
Sé que este es un hilo muy antiguo, pero he tenido el mismo problema. En mi caso todo lo que tenía que hacer era borrar un espurio
import java.util.prefs.Preferences;
Sólo compruebe su manifiesto para detectar errores que su IDE no apuntó.
- ¿Android restaura los extras de Intent cuando reanuda Actividad?
- Android ViewPager problema de desplazamiento con sólo un elemento cuando se utiliza getPageWidth de PagerAdapter