简体   繁体   中英

thread exiting with uncaught exception (group=0x40015560)

I am trying to go from the main.java (a splash screen) to Intro.java in my Android application. But I am getting the following error...

thread exiting with uncaught exception (group=0x40015560)

This is my code...

main.java:

public class main extends Activity {
/** Called when the activity is first created. */

boolean _active = true;
final int _splashTime = 2000; // time to display the splash screen in ms

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);



    // thread for displaying the SplashScreen
    Thread splashTread = new Thread()
    {
        @Override
        public void run()
        {
            try {
                int waited = 0;
                while(_active && (waited < _splashTime)) {
                    sleep(100);

                    // waited is incremented by 100 after every sleep for 100 ms
                    if(_active) {
                        waited += 100;
                    }
                }
            } 
            catch(InterruptedException e) {

            }
            finally {

                    finish();

                    Intent inte = new Intent(main.this, Intro.class);
                    startActivity(inte);
                    }
        }
    };

    splashTread.start();


}
// this is to skip splash screen by touch event
@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        _active = false;
    }
    return true;
}

}

Intro.java

public abstract class Intro extends Activity implements OnClickListener
{
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) 
{
    Log.d("Error"," Intro Started ");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro);


     RelativeLayout layout = (RelativeLayout) findViewById(R.layout.intro);
     layout.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View arg0, MotionEvent arg1)
    {
         Log.d("Error"," Touch Listener set "); 

        Intent i=new Intent(Intro.this,features.class);  
        startActivity(i);
        return false;
    }


});
}
}

The intro.java was supposed to go to features.java by touch of user...

manifest file

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

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

<application
    android:icon="@drawable/ubundroid"
    android:label="@string/app_name" >
    <activity
        android:name=".main"
        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=".Intro" />
    <activity   android:name=".Feature"/>
</application>

</manifest>

The Logcat :

 D/dalvikvm(1229): newInstance failed: p0 i0 [0 a1
 D/AndroidRuntime(1229): Shutting down VM
W/dalvikvm(1229): threadid=1: thread exiting with uncaught exception (group=0x40015560)
 E/AndroidRuntime(1229): FATAL EXCEPTION: main
 E/AndroidRuntime(1229): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ubuntu.app/        com.ubuntu.app.Intro}: java.lang.InstantiationException: com.ubuntu.app.Intro
 E/AndroidRuntime(1229):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
E/AndroidRuntime(1229):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(1229):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(1229):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
 E/AndroidRuntime(1229):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(1229):     at android.os.Looper.loop(Looper.java:123)
 E/AndroidRuntime(1229):    at android.app.ActivityThread.main(ActivityThread.java:3683)
 E/AndroidRuntime(1229):    at java.lang.reflect.Method.invokeNative(Native Method)
 E/AndroidRuntime(1229):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(1229):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(1229):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(1229):     at dalvik.system.NativeStart.main(Native Method)
 E/AndroidRuntime(1229): Caused by: java.lang.InstantiationException: com.ubuntu.app.Intro
E/AndroidRuntime(1229):     at java.lang.Class.newInstanceImpl(Native Method)
 E/AndroidRuntime(1229):    at java.lang.Class.newInstance(Class.java:1409)
 E/AndroidRuntime(1229):    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
 E/AndroidRuntime(1229):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
 E/AndroidRuntime(1229):    ... 11 more

Thanks in advance...

=========================== EDITED =====================================

It started running when i deleted all the touch events in the Intro.java. the new java file was :

package com.ubuntu.app;

import android.app.Activity;



import android.os.Bundle;
import android.util.Log;



public  class Intro extends Activity
{
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) 
{
    Log.d("Error"," Intro Started ");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro);

}
}

But I would like to get the right way to go to next activity by touch of user..

use

Intent i=new Intent(Intro.this,Feature.class);  
        startActivity(i);

instead of

 Intent i=new Intent(Intro.this,features.class);  
        startActivity(i);

or if features is your Activity then Register it also as in manifest:

<activity   android:name=".features"/>
  • Unable to instantiate activity ComponentInfo{com.ubuntu.app/
    com.ubuntu.app.Intro}: java.lang.InstantiationException: com.ubuntu.app.Intro

..

public abstract class Intro extends Activity implements OnClickListener

intro is an abstract class can't make it instance so when you launch this class android will try to create it's instance that will give error

I think I have to write the code

public  class Intro extends Activity implements OnClickListener
{
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) 
{
    Log.d("Error"," Intro Started ");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro);

}

public void onClick(View v) {
    //handle button event 
} 
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM