2015-01-13 33 views
0

我有以下代碼,我很適合在一定條件爲真的情況下啓動一個活動。但在startActivity(controllerActivity);我越來越java.lang.NullPointerExceptionNullPointerException當通過intent啓動一個活動時

在舞臺上的controllerActivity變量包含的Intent { act=android.intent.action.Main }

Thread thr_authenticateUser = new Thread(new Runnable() { 
    @Override 
    public void run() { 
     … 
     Boolean _authenticationStatus = Boolean.valueOf(authenticationReplyValue); 
     if (_authenticationStatus) { 
      Intent controllerActivity = new Intent("android.intent.action.Main"); 
      startActivity(controllerActivity); //NullPointerException 
     } 
    } 
}); 
thr_authenticateUser.start(); 

在進一步的調查結果,我發現了一個有效的值是它失敗的確切位置是內主要活動的`的onCreate ()

protected void onCreate(final Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
     setContentView(R.layout.main_view); // HERE: java.lang.NullPointerException 

然而視圖名稱main_view是正確的,它的存在。 Manifest:

<activity 
    android:name=".Main" 
    android:label="@string/app_name" 
    android:launchMode="singleInstance" 
    android:windowSoftInputMode="adjustPan" > 
    <intent-filter> 
     <action android:name="android.intent.action.Main" /> 

     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

Compelte堆棧跟蹤:

java.lang.NullPointerException 
     at android.app.Activity.startActivityForResult(Activity.java:3370) 
     at android.app.Activity.startActivityForResult(Activity.java:3331) 
     at android.app.Activity.startActivity(Activity.java:3566) 
     at android.app.Activity.startActivity(Activity.java:3534) 
     at com.citypulse.citypulse.User$1.run(User.java:57) 
     at java.lang.Thread.run(Thread.java:856) 
+0

*「android.intent.action.Main 「*。 ? – Blackbelt

+0

R.layout.main_view中的R是什麼? – Aify

+0

你確定NULL指針在setContentView上嗎?在設置內容視圖之前,我不認爲你可以調用getWindow()。 – JimW

回答

-1

獲取的背景下啓動的活動

getBaseContext().startActivity(controlledActivity); 

YourActivity.this.startActivity(controlledActivity); 
+0

與此更改相同的結果 – Maven

+0

如果你這樣做:'Intent i = new Intent(context,ControllerActivity.class)' – vinitius

+0

我試過你的代碼,它的工作方式很好。你能發佈整個代碼嗎?爲什麼downvote? – vinitius

相關問題