我收到以下异常: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cs.workshop.solvedroid/cs.workshop.solvedroid.SolveCaptureActivity}: java.lang.NullPointerException
当我运行应用程序时,转到MainMenuActivity并尝试打开SolveCaptureAvctivity我得到异常 .
我有关于这个例外的其他Q,但它们都指向AndroidManifest.xml,对我来说似乎很好 . 它能成为什么?请帮忙
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):显示cs.workshop.solvedroid / .MainMenuActivity:4s385ms 08-07 18:33:26.784:INFO / ActivityManager(70):开始:意图{cmp = cs .workshop.solvedroid / .AboutActivity}来自pid 330 08-07 18:33:26.984:DEBUG / dalvikvm(330):GC_EXTERNAL_ALLOC释放11K,53%免费2582K / 5379K,外部7607K / 9499K,暂停51ms 08-07 18: 33:28.434:INFO / ActivityManager(70):显示cs.workshop.solvedroid / .AboutActivity:1s68ms 08-07 18:33:29.104:WARN / KeyCharacterMap(330):id 0 08-07 18:33没有键盘: 29.104:WARN / KeyCharacterMap(330):使用默认键映射:/system/usr/keychars/qwerty.kcm.bin 08-07 18:33:30.674:INFO / ActivityManager(70):开始:Intent {cmp = cs.workshop .psolved / .SolveCaptureActivity}来自pid 330 08-07 18:33:30.834:DEBUG / AndroidRuntime(330):关闭VM 08-07 18:33:30.834:WARN / dalvikvm(330):threadid = 1:线程退出with uncaught exception(group = 0x40015560)08-07 18:33:30.874:ERROR / AndroidRuntime(330):FATAL EXCEPTION:ma在08-07 18:33:30.874:ERROR / AndroidRuntime(330):java.lang.RuntimeException:无法实例化活动ComponentInfo {cs.workshop.solvedroid / cs.workshop.solvedroid.SolveCaptureActivity}:java.lang.NullPointerException 08 -07 18:33:30.874:ERROR / AndroidRuntime(330):在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):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:928)08-07 18:33:30.874:ERROR / AndroidRuntime(330):在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):在android.app.ActivityThread.main(ActivityThread.java:36 47)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):引起:java.lang.NullPointerException 08-07 18:33:30.874:ERROR / AndroidRuntime(330):在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(3) 30):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):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)08-07 18:33:30.874:ERROR / AndroidRuntime(330):... 11更多
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>
1 回答
在调用
setContentView()
之后才能使用findViewById()
.