2

I am having a problem with my app crashing after I press the button that activates my xml where my radio buttons are located.

The logcat says my error is java.lang.nullpointerexception.

I have included my logcat, java where error occurred, and manifest.

I originally had problems with my RadioButtons where the program allowed me to have them both checked and impossible to uncheck. When I changed around the coding to include the onCheckChange listener the app now crashes whenever I press a RadioButton.

07-17 18:09:37.067: W/dalvikvm(329): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-17 18:09:37.077: E/AndroidRuntime(329): FATAL EXCEPTION: main
07-17 18:09:37.077: E/AndroidRuntime(329): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.com.proto1/com.example.com.proto1.Voiceprompt}: java.lang.ClassNotFoundException: com.example.com.proto1.Voiceprompt in loader dalvik.system.PathClassLoader[/data/app/com.example.com.proto1-2.apk]
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.os.Looper.loop(Looper.java:123)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread.main(ActivityThread.java:3683)
07-17 18:09:37.077: E/AndroidRuntime(329):  at java.lang.reflect.Method.invokeNative(Native Method)
07-17 18:09:37.077: E/AndroidRuntime(329):  at java.lang.reflect.Method.invoke(Method.java:507)
07-17 18:09:37.077: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-17 18:09:37.077: E/AndroidRuntime(329):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-17 18:09:37.077: E/AndroidRuntime(329):  at dalvik.system.NativeStart.main(Native Method)
07-17 18:09:37.077: E/AndroidRuntime(329): Caused by: java.lang.ClassNotFoundException: com.example.com.proto1.Voiceprompt in loader dalvik.system.PathClassLoader[/data/app/com.example.com.proto1-2.apk]
07-17 18:09:37.077: E/AndroidRuntime(329):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
07-17 18:09:37.077: E/AndroidRuntime(329):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
07-17 18:09:37.077: E/AndroidRuntime(329):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
07-17 18:09:37.077: E/AndroidRuntime(329):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
07-17 18:09:37.077: E/AndroidRuntime(329):  ... 11 more


    package com.example.com.proto1;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class VoicePrompts extends Activity implements OnCheckedChangeListener {

    RadioButton on, off, onc, offc;

    // Button Sound
    MediaPlayer buttonSound1 = MediaPlayer.create(VoicePrompts.this, R.raw.vpo);
    MediaPlayer buttonSound2 = MediaPlayer
            .create(VoicePrompts.this, R.raw.vpof);
    MediaPlayer buttonSound3 = MediaPlayer
            .create(VoicePrompts.this, R.raw.vpoc);
    MediaPlayer buttonSound4 = MediaPlayer.create(VoicePrompts.this,
            R.raw.vpofc);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.voiceprompts);

        // Setting up the button references
        on = (RadioButton) findViewById(R.id.vbutton1);
        off = (RadioButton) findViewById(R.id.vbutton2);
        onc = (RadioButton) findViewById(R.id.vbutton1);
        offc = (RadioButton) findViewById(R.id.vbutton2);

        buttonSound1 = MediaPlayer.create(VoicePrompts.this, R.raw.vpo);
        buttonSound2 = MediaPlayer.create(VoicePrompts.this, R.raw.vpof);
        buttonSound3 = MediaPlayer.create(VoicePrompts.this, R.raw.vpoc);
        buttonSound4 = MediaPlayer.create(VoicePrompts.this, R.raw.vpofc);
    }

    public void onCheckedChanged(RadioGroup arg0, int checkedId) {
        // TODO Auto-generated method stub
        switch (checkedId) {
        case R.id.vbutton1:
            on.setOnLongClickListener(new View.OnLongClickListener() {

                public boolean onLongClick(View v) {
                    // TODO Auto-generated method stub
                    try {
                        buttonSound1.prepare();
                        buttonSound1.start();
                        startActivity(new Intent("android.intent.action.VPON"));

                    } catch (Exception e) {

                    }
                    return false;
                }
            });

            onc.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    try {
                        buttonSound3.prepare();
                        buttonSound3.start();
                        startActivity(new Intent("android.intent.action.VPON"));
                    } catch (Exception e) {

                    }
                    ;

                }
            });

            break;
        case R.id.vbutton2:

            off.setOnLongClickListener(new View.OnLongClickListener() {

                public boolean onLongClick(View v) {
                    // TODO Auto-generated method stub
                    try {
                        buttonSound2.prepare();
                        buttonSound2.start();
                        startActivity(new Intent("android.intent.action.VPOFF"));
                    } catch (Exception e) {

                    }
                    ;
                    return false;

                }
            });

            offc.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    try {
                        buttonSound4.prepare();
                        buttonSound4.start();
                        startActivity(new Intent("android.intent.action.VPOFF"));
                    } catch (Exception e) {

                    }
                    ;

                }
            });

            break;
        }

    }

}




<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.com.proto1"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".mainj"
            android:label="@string/title_activity_mainj" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".menu"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MENU" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Infoactive"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.INFOSCREEN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".VoicePrompts"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VOICEPROMPTS" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".VPon"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VPON" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".VPoff"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VPOFF" />

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

</manifest>





package com.example.com.proto1;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class menu extends Activity {

    @Override
    protected void onCreate(Bundle aboutmenu) {
        // TODO Auto-generated method stub
        super.onCreate(aboutmenu);
        setContentView(R.layout.mainx);

        // Button Sound
        final MediaPlayer buttonSound = MediaPlayer.create(menu.this,
                R.raw.button_click);

        // Setting up the button references
        Button info = (Button) findViewById(R.id.aboutbutton);
        Button voice = (Button) findViewById(R.id.voicebutton);

        info.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                buttonSound.start();
                startActivity(new Intent("android.intent.action.INFOSCREEN"));

            }
        });

        voice.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                buttonSound.start();
                Intent voiceIntent = new Intent("android.intent.action.VOICEPROMPTS");
                startActivity(voiceIntent);
            }
        });

    }
}
1
  • 1
    I don't see any nullpointer on the stacktrace...Anyway the error seems to be caused by a ClassNotFoundException, meaning that the classloader isn't able to find your class. Commented Jul 18, 2012 at 14:48

2 Answers 2

2

Give Button Refrences after setContentView(R.layout.voiceprompts);

Like,

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

         // Setting up the button references

            on = (RadioButton) findViewById(R.id.vbutton1);
            off = (RadioButton) findViewById(R.id.vbutton2);
            onc = (RadioButton) findViewById(R.id.vbutton1);
            offc = (RadioButton) findViewById(R.id.vbutton2);
    }
Sign up to request clarification or add additional context in comments.

3 Comments

I did as followed and now I get the same error whenever I press the button to open the xml where the radio buttons are located.
are you add activity in manifiest file <activity android:name="com.example.com.proto1.Voiceprompt" />
could you clarify? You said Are You Add
1

I think you have two Activity with name VoicePrompts and VoicePrompt. You declared VoicePrompts in menifest file. But your are calling VoicePrompt.

EDIT According to your new Problem

MediaPlayer buttonSound1,buttonSound2,buttonSound3,buttonSound4 ;

and init in onCreate

like

 @Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.voiceprompts);

    // Setting up the button references
    on = (RadioButton) findViewById(R.id.vbutton1);
    off = (RadioButton) findViewById(R.id.vbutton2);
    onc = (RadioButton) findViewById(R.id.vbutton1);
    offc = (RadioButton) findViewById(R.id.vbutton2);
    buttonSound1 = MediaPlayer.create(VoicePrompts.this,
        R.raw.vpo);
    buttonSound2 = MediaPlayer.create(VoicePrompts.this,
        R.raw.vpof);
    buttonSound3 = MediaPlayer.create(VoicePrompts.this,
        R.raw.vpoc);
    buttonSound4 = MediaPlayer.create(VoicePrompts.this,
        R.raw.vpofc);
}

13 Comments

I have added the java that calls for the activity in my post edit and I thought it looked correct.
and please read your question again..It is very confusing.. The LogCat reflect that Activity is not started yet. But you write the app now crashes whenever I press a RadioButton. Please look at it...and clean your question a little bit.
srry my crash location changed when I edited something from the other guy's suggestion. I mentioned it in his comment but didn't edit above
the vbutton is my name for the two radio buttons I am using in my xml. The crash location changed and now the app crashes every time I press the button action from my java that launches the xml where my radio buttons are located.
replace import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; these two line with import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.CompoundButton;
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.