2015-01-13 2 views
0

У меня есть следующий код, я прав, чтобы начать работу, если задано определенное условие. Но над startActivity(controllerActivity); я получаю java.lang.NullPointerExceptionNullPointerException при запуске операции с помощью намерения

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 в R.layout.main_view? – 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

Смежные вопросы