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.
精彩评论