2014-07-25 59 views
-1

我正在創建一個AlertDialog,通過創建活動來顯示我正在執行的操作。以下是完整的代碼,清單和錯誤跟蹤。任何人都可以說我正在犯的錯誤。活動開始時的Java Nullpointer異常

// From a service 
Intent intent = new Intent(this, Myclass.class ); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.putExtra("TYPE", "ASToContainer"); 
startActivity(intent); 

// Activity 
public class Myactivity extends Activity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    String type = savedInstanceState.getString("TYPE"); 

    if(type.equalsIgnoreCase("ASToContainer")) 
    { 
     AlertDialog.Builder builder = new AlertDialog.Builder(Myactivity.this); 
     builder.setMessage(R.string.SWITCH_ACTIVESYNC_TO_WORKSPACE); 
     builder.setIcon(R.drawable.icon); 
     builder.setCancelable(false); 
     builder.setTitle(R.string.SWITCH_AS_CONFIRMATION); 
     builder.setPositiveButton(R.string.DIALOG_YES, new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int which) 
      { 
       AnotherService serviceInstance = AnotherService.getInstance(); 
       if(serviceInstance != null) 
       { 
        serviceinstance._SwitchASToContainerRejected = 1; 
        serviceInstance.requestClearActiveSyncRegistration(); 
       } 
      }   
     }) 
     .setNegativeButton(R.string.DIALOG_NO, new DialogInterface.OnClickListener() 
     { 
      public void onClick(DialogInterface dialog, int which) 
      { 
       AnotherService.getInstance()._SwitchASToContainerRejected = 0;  
      }   
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 
} 
} 

// Manifest 
<android:name="mypackagename.activity.Myactivity" android:theme="@android:style/Theme.Dialog"></activity> 

// trace 


07-24 16:30:04.877: C/Myapp(619): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/com.example.myapp.IMC}: java.lang.NullPointerException 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
07-24 16:30:04.877: C/Myapp(619): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-24 16:30:04.877: C/Myapp(619): at android.os.Looper.loop(Looper.java:123) 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-24 16:30:04.877: C/Myapp(619): at java.lang.reflect.Method.invokeNative(Native Method) 
07-24 16:30:04.877: C/Myapp(619): at java.lang.reflect.Method.invoke(Method.java:521) 
07-24 16:30:04.877: C/Myapp(619): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-24 16:30:04.877: C/Myapp(619): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-24 16:30:04.877: C/Myapp(619): at dalvik.system.NativeStart.main(Native Method) 
07-24 16:30:04.877: C/Myapp(619): Caused by: java.lang.NullPointerException 
07-24 16:30:04.877: C/Myapp(619): at com.example.myapp.IMC.onCreate(IMC.java:57) 
07-24 16:30:04.877: C/Myapp(619): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-24 16:30:04.877: C/Myapp(619): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 

我在做什麼錯了?這是創建對話框提示符的正確方法嗎?請幫我

+0

引起:java.lang.NullPointerException在com.example.myapp.IMC.onCreate(IMC.java:57)< - 這是你的問題。 – panini

+0

哪一行是57行? –

+0

它應該是'String type = getIntent.getStringExtra(「TYPE」)'。 –

回答

0

問題是「活動名稱」。

Intent intent = new Intent(this,Myclass.class); //你使用

但是,你正在使用「Myactivity」

從服務您呼叫的活動名稱「MYCLASS」但你的活動名稱是「Myactivity」。這就是它正在拋出Nullpointerexception。因爲它無法找到類/活動名稱「Myclass」。

因此,將Myclass名稱更改爲Myactivity。它會解決問題。