Android.content.ActivityNotFoundException: Ninguna actividad encontrada para manejar Intent splash screen
Tengo un problema con la carga de una nueva intención después de mi pantalla de bienvenida. He mirado las preguntas relativas a esta excepción, pero todos parecen estar tratando con algo como google play o google maps no se hace referencia correctamente, este no es el caso para mí.
Estas son las preguntas relacionadas que he mirado
- Cómo borrar todas las actividades de la pila en API 8?
- Difusión de un problema INSTALL_REFERRER de intención
- Cómo obtener la selección de usuario de startActivityForResult (Intent.createChooser (fileIntent, "Abrir archivo utilizando ..."), APP_PICKED) ;?
- ¿Falta el parámetro de intención de Android FLAG_ACTIVITY_SINGLE_TASK?
- ¿Cómo abrir un archivo sin conocer su extensión pero sabiendo su nombre completo?
No se encontró actividad para manejar la intención?
Actividad no encontrada para manejar la intención
Ninguna actividad encontrada para manejar la intención
A continuación se muestra mi código de manifiesto
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.main" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".Splash" 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=".HomePage" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.HOMEPAGE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name=".OrderPlaced" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.ORDERPLACED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>
Aquí está el código de la clase splash
package com.android.main; import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class Splash extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); Thread timer = new Thread(){ public void run(){ try{ sleep(1000); }catch(InterruptedException e) { e.printStackTrace(); }finally{ Intent openStartingPoint = new Intent("com.android.main.HOMEPAGE"); startActivity(openStartingPoint); } } }; timer.start(); } @Override protected void onPause() { super.onPause(); finish(); } }
Y aquí está la clase HomePage que estoy tratando de cargar después de la pantalla de bienvenida
package com.android.main; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; public class HomePage extends Activity { /** Called when the activity is first created. */ TextView name; EditText editName; TextView drinks; Spinner drinksSpinner; TextView message; CheckBox checkbox; Button createOrderButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createOrder(); } public void createOrder(){ createOrderButton = (Button) findViewById(R.id.bCreateOrder); createOrderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { postInformationtoAPI(); } private void postInformationtoAPI() { goToOrderCompleted(); } private void goToOrderCompleted() { Intent intent = new Intent(HomePage.this , OrderPlaced.class); HomePage.this.startActivity(intent); Log.i("onClick", "trying to start new activity to change layout"); } }); } }
La aplicación se cierra después de cargar la pantalla de bienvenida y da la siguiente excepción
03-14 22:32:33.553: E/AndroidRuntime(3166): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.main.HOMEPAGE }
Cualquier ayuda con esto sería muy apreciada
- Android: url abierta en el navegador externo causa un bucle infinito
- Intención: quitar botones Siempre / Sólo una vez
- ¿Cuáles son los tipos de intenciones posibles para el tipo de intención.setType?
- Implícita vs intención explícita en Android (startActivity (intención) se bloquea)
- Obtener todos los clientes de Twitter de aplicaciones instaladas
- Pid para el proceso que envió una intención
- Abrir varias imágenes en la intención de la galería
- ¿Por qué los documentos de Android dicen que los extras de intenciones necesitan un prefijo de paquete
Tienes que diferenciar el Constructor de la Intención,
Intent openStartingPoint = new Intent("com.android.main.HOMEPAGE");
Que asumen com.android.main.HOMEPAGE
como la acción de intención Filtrar . Lo cual no está disponible en el archivo android manifest.xml de su aplicación. Tienes
<action android:name="android.intent.action.HOMEPAGE" />
Que debe ser,
<action android:name="com.android.main.HOMEPAGE" />
O simplemente cambiarlo con,
Intent openStartingPoint = new Intent(Splash.this, HOMEPAGE.class);
<activity android:label="@string/app_name" android:name=".SplashScreen" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.android.main.HOMEPAGE" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <intent-filter > <action android:name="com.android.main.HOMEPAGE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
También tendría una tarea de temporizador para mostrar la pantalla de bienvenida
public class SplashScreen extends Activity{ Timer splashTimer; SplashTimerHandler splashTimerHandler; private boolean applicationPaused=false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); this.setSplash(); } private void setSplash() { this.splashTimerHandler=new SplashTimerHandler(); this.splashTimer=new Timer(); this.splashTimer.schedule(this.splashTimerHandler, 0, 1000); } @Override public void onPause() { super.onPause(); this.applicationPaused=true; this.closeSplashTimer(); } @Override public void onResume() { super.onResume(); if(this.applicationPaused) { this.applicationPaused=false; this.closeSplashTimer(); this.setSplash(); } } public class SplashTimerHandler extends TimerTask{ int splashTimerCounter=0; @Override public void run() { splashTimerCounter++; if(splashTimerCounter>2) { runOnUiThread(splashTimeOver); } } private Runnable splashTimeOver=new Runnable() { @Override public void run() { closeSplashTimer(); startHomeScreen(); } }; } protected void closeSplashTimer() { if(this.splashTimer!=null) { this.splashTimer.cancel(); this.splashTimer=null; } } private void startHomeScreen() { this.closeSplashScreen(); startActivity(new Intent("com.android.main.HOMEPAGE")); } private void closeSplashScreen() { this.closeSplashTimer(); this.finish(); } @Override public boolean onKeyDown(int keycode, KeyEvent event) { if(keycode==KeyEvent.KEYCODE_BACK) { this.closeSplashScreen(); } return true; } }
- ¿Cómo puedo eliminar el título y el icono de forma completa en Actionbar sherlock?
- Imagen de diapositiva suave de una sola manera