user2624376
user2624376

Reputation:

Android application doesn't launch on device

I'm a beginner android developer here and I coded a basic activity that loads an image, waits for 5 seconds and opens the main activity that holds a text view. There are no errors and it compiles perfectly fine. When I launch on my device though, it doesn't open. (Doesn't open on the emulator either). I'm not sure why this is.

Here is the manifest:

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:debuggable="true">
    <activity
        android:name="com.example.gui.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.example.gui.Splash"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.SPLASH" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

Here is the Splash activity I intent to load first.

package com.example.gui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;


public class Splash extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    Thread splash_thread = new Thread(){
        public void run(){
            try{
                sleep(5000);
            } catch(InterruptedException e)
            { e.printStackTrace();
        }finally{ Intent splash_intent = new      Intent("android.intent.action.MAIN");
            startActivity(splash_intent);
    }
}
};
splash_thread.start(); 

}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}

}

And here is the other activity I intend to run:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }


}

I'm following a tutorial off the internet, this still doesn't run for some reason. My layout's are very standard as well. Help'd be appreciated.

Upvotes: 0

Views: 1587

Answers (1)

Manpreet Singh
Manpreet Singh

Reputation: 25

You can set wrong path in manifest.xml file.

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true">
<activity
    android:name="com.example.gui.Splash"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
<activity
    android:name="com.example.gui.MainActivity"
    android:label="@string/app_name" >

try this and now your splash screen lauch first and the main activity will launch... if it not working then try this code only if your activity will not give response.

  public class Splash_screen extends Activity {
 private static String TAG = Splash_screen.class.getName();
 private static long SLEEP_TIME = 3;    // Sleep for some time
  @Override
   protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
  this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
  this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,       WindowManager.LayoutParams.FLAG_FULLSCREEN);    // Removes notification bar
  setContentView(R.layout.splash_screen);
  IntentLauncher launcher = new IntentLauncher();
  launcher.start();
}
private class IntentLauncher extends Thread{
  @Override
  /**
   * Sleep for some time and than start new activity.
   */
  public void run() {
     try {
        // Sleeping
        Thread.sleep(SLEEP_TIME*1000);
     } catch (Exception e) {
        Log.e(TAG, e.getMessage());
     }

     // Start main activity
     Intent intent = new Intent(Splash_screen.this,Login_screen.class);
     startActivity(intent);
     finish();
  }
}

Upvotes: 1

Related Questions