开发者

getting exception: Unable to instantiate activity ComponentInfo

i'm getting the following exception: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cs.workshop.solvedroid/cs.workshop.solvedroid.SolveCaptureActivity}: java.lang.NullPointerException

when i run the application, get to the MainMenuActivity and try to open the SolveCaptureAvctivity i get the exception.

i've other Qs about this exception but they all point to the AndroidManifest.xml and it seems fine to me. what can it be? please help

public class SolveCaptureActivity extends Activity {

Button bCamera; ImageView captured_image = ( ImageView ) findViewById( R.id.image_capture_photo);

private static final int PICTURE_REQUEST = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.solve_capture);
    Log.e("mydebug", "ERROR ERROR ERROR");
    /*
    // "Back" button 
    Button bBack = (Button) findViewById(R.id.button_back);
    bBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent gotoBack = new Intent();
            setResult(RESULT_OK, gotoBack);
            finish();
        }
    });
    */

    // "Camera" button
    bCamera = (Button) findViewById(R.id.button_camera);
    bCamera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);   
            startActivityForResult(camera, PICTURE_REQUEST);
            int caemraRequestCode = 0, CameraResultCode = -1;
            Intent data = new Intent();
            try{
            onActivityResult(caemraRequestCode, CameraResultCode, data);
            }
            catch(Exception e){
                Log.e("mydebug", "ERROR ERROR ERROR");
            }


        }

        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            Log.d("mylog", "here1");
            Log.d("mylog", Integer.toString(requestCode));
            Log.d("mylog", Integer.toString(resultCode));
            if (requestCode == PICTURE_REQUEST) {
                Log.d("mylog", "here2");
                if (resultCode == Activity.RESULT_OK){
                    // Display image received on the view;
                    Log.d("mylog", "here3");
                    Log.d("mylog", "here4");
                    Bitmap photo = (Bitmap) data.getExtras().get("data");                   
                    if (photo != null) { // Display your image in an ImageView in your layout (if you want to test it)
                        Log.d("mylog", "here5");
                        ImageView pictureHolder = (ImageView) findViewById(R.id.image_capture_photo);
                        pictureHolder.setImageBitmap(photo);                             
                    }
                }
            }
        }
    });


}

}

public class MainMenuActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainmenu);


    // "Solve Capture" button
    Button bSlvCapture = (Button) findViewById(R.id.button_mainmenu_solvecapture);
    bSlvCapture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent gotoSolveCapture = new Intent(v.getContext(), SolveCaptureActivity.class);
            startActivityForResult(gotoSolveCapture, 0);
        }
    });

    // "Solve Manual" button
    Button bSlvManual = (Button) findViewById(R.id.button_mainmenu_solvemanual);
    bSlvManual.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent gotoSolveManual = new Intent(v.getContext(), SolveManualActivity.class);
            startActivityForResult(gotoSolveManual, 0);
        }
    });

    // "About" button
    Button bAbout = (Button) findViewById(R.id.button_mainmenu_about);
    bAbout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent gotoAbout = new Intent(v.getContext(), AboutActivity.class);
            startActivityForResult(gotoAbout, 0);
        }
    });    

} }

08-07 18:33:23.854: INFO/ActivityManager(70): Displayed cs.workshop.solvedroid/.MainMenuActivity: +4s385ms 08-07 18:33:26.784: INFO/ActivityManager(70): Starting: Intent { cmp=cs.workshop.solvedroid/.AboutActivity } from pid 330 08-07 18:33:26.984: DEBUG/dalvikvm(330): GC_EXTERNAL_ALLOC freed 11K, 53% free 2582K/5379K, external 7607K/9499K, paused 51ms 08-07 18:33:28.434: INFO/ActivityManager(70): Displayed cs.workshop.solvedroid/.AboutActivity: +1s68ms 08-07 18:33:29.104: WARN/KeyCharacterMap(330): No keyboard for id 0 08-07 18:33:29.104: WARN/KeyCharacterMap(330): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 08-07 18:33:30.674: INFO/ActivityManager(70): Starting: Intent { cmp=cs.workshop.solvedroid/.SolveCaptureActivity } from pid 330 08-07 18:33:30.834: DEBUG/AndroidRuntime(330): Shutting down VM 08-07 18:33:30.834: WARN/dalvikvm(330): threadid=1: thread exiting with uncaught exception (group=0x40015560) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): FATAL EXCEPTION: main 08-07 18:33:30.874: ERROR/AndroidRuntime(330): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cs.workshop.solvedroid/cs.workshop.solvedroid.SolveCaptureActivity}: java.lang.NullPointerException 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.os.Handler.dispatchMessage(Handler.java:99) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.os.Looper.loop(Looper.java:123) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread.main(ActivityThread.java:3647) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at java.lang.reflect.Method.invokeNative(Native Method) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at java.lang.reflect.Method.invoke(Method.java:507) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at dalvik.system.NativeStart.main(Native Method) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): Caused by: java.lang.NullPointerException 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.Activity.findViewById(Activity.java:1647) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at cs.workshop.solvedroid.SolveCaptureActivity.(SolveCaptureActivity.java:15) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at java.lang.Class.newInstanceImpl(Native Method) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at java.lang.Class.newInstance(Class.java:1409) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536) 08-07 18:33:30.874: ERROR/AndroidRuntime(330): ... 11 more

manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cs.workshop.solvedroid"
      android:versionCode="1"
      android:versionName="1.0">
    uses-sdk android:minSdkVersion="9" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:label="@string/app_name" android:name=".MainMenuActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>开发者_开发知识库;
        <activity android:label="@string/app_name" android:name="AboutActivity"></activity>
        <activity android:label="@string/app_name" android:name="SolveCaptureActivity"></activity>
        <activity android:label="@string/app_name" android:name="SolveManualActivity"></activity>
        <activity android:label="@string/app_name" android:name="ManualSolutionActivity"></activity>

    </application>
manifest>


You cannot use findViewById() until after setContentView() is called.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜