2014-01-24 4 views
0

Я пытаюсь внедрить кнопку входа в Google Plus на моем приложении Android, которое использует andengine, и я получаю исключение NullPointException. Вот мой кодandengine Кнопка значка Google Plus

public class GameActivity extends BaseGameActivity implements ConnectionCallbacks,   OnConnectionFailedListener{ 

public static GameActivity gameActivity; 
public static ProgressDialog mConnectionProgressDialog; 

public static PlusClient mPlusClient; 
public static ConnectionResult mConnectionResult; 
private static final int REQUEST_CODE_RESOLVE_ERR = 9000 

public void onCreate(Bundle savedInstanceState) { 
gameActivity = this; 
} 

public static void buttonPressed() { 
    Log.e("pushNotification", "buttonPressed"); 
    if (!mPlusClient.isConnected()) { 

     if (mConnectionResult == null) { 
       mConnectionProgressDialog.show(); 
      } 

     try { 

       mConnectionResult.startResolutionForResult(gameActivity,REQUEST_CODE_RESOLVE_ERR); 
      } catch (SendIntentException e) { 
       mConnectionResult = null; 
       mPlusClient.connect(); 
      } 
    } 

}

Статический метод buttonPressed вызывается на моем меню Scene. Он хорошо работает до тех пор пока он выходит из строя на линии с кодом:

mConnectionResult.startResolutionForResult(gameActivity, REQUEST_CODE_RESOLVE_ERR); 

, как я писал, что называется на «попробовать» часть.

Помогает ли кто-нибудь мне? Что я делаю неправильно? Какой параметр мне нужно передать вместо «gameActivity» ??? Большое спасибо

+0

является его gameActivity, который вызывает NPE? (например, это нуль?) –

+0

да. На самом деле, я добавил google plus в другую игру, которая не использует andengine, и я просто добавляю «Activiy.this» в качестве параметра, и он работает. Но я не могу написать gameActivity.this, я получаю сообщение об ошибке, что он не может быть разрешен для типа – user3216280

ответ

0

запустить метод buttonPressed() на UI потоке следующим образом:

Activity.this.runOnUiThread(new Runnable() { 

      @Override 
      public void run() { 

       buttonPressed(); 
      } 
     }); 

Попробуйте

+0

Здравствуйте, Спасибо за ваш ответ. Фактически, buttonPressed() вызывается на моей сцене MainMenu следующим кодом: GameSceneManager.getInstance(). GetBaseGame(). RunOnUiThread (new Runnable() { public void run() {gameActivity.buttonPressed();}}) : -> очень похоже на ваш код, и он не работает! – user3216280

+0

У вас есть какое-то исключение? Если да, укажите лог. – Rama

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