2016-12-06 2 views
2

Я получаю эту ошибку из моей консоли разработчика игр: -Ошибка при входе в Google услуги играть в играх: looper.prepare() нельзя назвать

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
    at android.os.Handler.<init>(Handler.java:121) 
    at android.app.Dialog.<init>(Dialog.java:101) 
    at android.app.AlertDialog.<init>(AlertDialog.java:63) 
    at android.app.AlertDialog.<init>(AlertDialog.java:59) 
    at android.app.AlertDialog$Builder.create(AlertDialog.java:793) 
    at com.google.android.gms.common.GoogleApiAvailability.zza(Unknown Source) 
    at com.google.android.gms.common.GoogleApiAvailability.getErrorDialog(Unknown Source) 
    at com.google.android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source) 
    at com.google.example.games.basegameutils.GameHelper.showFailureDialog(GameHelper.java:953) 
    at com.google.example.games.basegameutils.GameHelper.showFailureDialog(GameHelper.java:920) 
    at com.google.example.games.basegameutils.GameHelper.giveUp(GameHelper.java:898) 
    at com.google.example.games.basegameutils.GameHelper.resolveConnectionResult(GameHelper.java:865) 
    at com.google.example.games.basegameutils.GameHelper.beginUserInitiatedSignIn(GameHelper.java:662) 
    at com.sdsmdg.cycle.AndroidLauncher.signIn(AndroidLauncher.java:90) 
    at com.sdsmdg.cycle.screens.SplashScreen.<init>(SplashScreen.java:41) 
    at com.sdsmdg.cycle.CGame.create(CGame.java:23) 
    at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:275) 
    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1381) 
    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1138) 

Похоже, он выходит из строя, когда пользователь не может войти в сервисы Google Play, но я не могу найти решение этой проблемы.

Вот исходный код игры: - https://github.com/harshit211997/Hitball

ответ

0

Вы пытаетесь отобразить AlertDialog от фонового потока .Чтобы показать ваш диалог добавления Looper.prepare() или отобразить диалог с mainUiThread.

+0

Я знаю это немного, но как это сделать точно. Я вызываю gameHelper.beginUserInitiatedSignIn(); от моей основной деятельности и отдыха позаботится библиотека игровых игр –

1

Вы пробовали:

runOnUiThread(new Runnable() { @Override public void run() { gameHelper.beginUserInitiatedSignIn(); } });

вместо того, чтобы просто

gameHelper.beginUserInitiatedSignIn();

?

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