2011-08-07 41 views
-1

,我發現了以下異常:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cs.workshop.solvedroid/cs.workshop.solvedroid.SolveCaptureActivity}: java.lang.NullPointerException變得異常:無法實例活動ComponentInfo

當我運行應用程序,得到的MainMenuActivity並嘗試打開SolveCaptureAvctivity我得到的例外。

我對這個例外有其他問題,但他們都指向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:我NFO/ActivityManager(70):顯示cs.workshop.solvedroid/.MainMenuActivity:+ 4s385ms 08-07 18:33:26.784:INFO/ActivityManager(70):Starting:Intent {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):沒有鍵盤爲0 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):Starting:Intent {cmp = cs.workshop。 solveroid/.SolveCaptureActivity} from pid 330 08-07 18:33:30.834:DEBUG/AndroidRunt ime(330):關閉虛擬機 08-07 18:33:30.834:WARN/dalvikvm(330):threadid = 1:線程正在以未捕獲的異常退出(group = 0x40015560) 08-07 18:33:30.874:ERROR/AndroidRuntime(330):致命例外:main 08-07 18:33:30.874:錯誤/ 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):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:錯誤/ AndroidRuntime(330):在android.app.ActivityThread.main(ActivityThread.java:3647) 08-07 18:33:30.874:錯誤/ AndroidRuntime(330):在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:錯誤/ 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):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方法) 08-07 18:33:30.874:ERROR/AndroidRuntime(330):at java.lang.Class.newIns tance(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> 

回答

4

不能使用findViewById()直到setContentView()被調用後。

+0

+1爲管理閱讀在這混亂:) – MByD

相關問題