我有以下代碼,我很適合在一定條件爲真的情況下啓動一個活動。但在startActivity(controllerActivity);
我越來越java.lang.NullPointerException
NullPointerException當通過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)
*「android.intent.action.Main 「*。 ? – Blackbelt
R.layout.main_view中的R是什麼? – Aify
你確定NULL指針在setContentView上嗎?在設置內容視圖之前,我不認爲你可以調用getWindow()。 – JimW