2016-04-03 2 views
2

Я возиться с этой проблемой около 10h и я не можите понять, что я сделал неправильно ....Android аварии на GooglePlayServices (Игры) подключить

Fatal Exception:

E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: onl.deepspace.zoorallye, PID: 13256 
    java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. 
    at com.google.android.gms.common.internal.zzj$zza.zzc(Unknown Source) 
    at com.google.android.gms.common.internal.zzj$zza.zzw(Unknown Source) 
    at com.google.android.gms.common.internal.zzj$zzc.zzqN(Unknown Source) 
    at com.google.android.gms.common.internal.zzj$zzb.handleMessage(Unknown Source) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5569) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:726) 

Log не дает какой-либо важной информации


Я искал вокруг Google, я мог бы исправить некоторые ошибки. Но App всегда аварии здесь:

achievements.googleApiClient.connect();

MainActivity (важные части):

Achievements achievements; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ... 

    //Init Achievements 
    achievements = new Achievements(this); 
    achievements.googleApiClient.connect(); //**AppCrash** 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    achievements.googleApiClient.disconnect(); 
}  

Achievements.java:

public class Achievements implements GoogleApiClient.OnConnectionFailedListener, GoogleApiClient.ConnectionCallbacks{ 

public GoogleApiClient googleApiClient; 
private Activity activity; 

public Achievements(Activity activity){ 
    this.activity = activity; 

    googleApiClient = new GoogleApiClient.Builder(activity) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Games.API) 
      .addScope(Games.SCOPE_GAMES) 
      .build(); 
} 

private void signIn(GoogleApiClient signinClient) { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(signinClient); 
    activity.startActivityForResult(signInIntent, 0); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
    if(connectionResult.getErrorCode() == ConnectionResult.SIGN_IN_REQUIRED){ 
     signIn(Tools.getSigninClient(activity)); 
    } 
    Toast.makeText(activity, connectionResult.getErrorMessage(), Toast.LENGTH_SHORT).show(); 
    Log.e(Const.LOGTAG, connectionResult.getErrorMessage()); 
} 

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    Log.i(Const.LOGTAG, "Play Service (Games) Connected"); 
} 

@Override 
public void onConnectionSuspended(int i) { 
} 
} 

AndroidManifest.xml:

 <?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="onl.deepspace.zoorallye"> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/appicon" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.Drawer"></activity> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
    <meta-data 
     android:name="com.google.android.gms.games.onl.deepspace.zoorallye" 
     android:value="@string/google_app_id" /> 

</application> 

+0

«Log», упомянутый в ошибке, не содержит никакой важной информации –

ответ

1

Посмотрел вокруг общины для подобных сообщений и нашел этот answer, проверить его. Пойдем прямо к делу, я думаю, причина этой проблемы в вашем AndroidManifest.xml. Как упоминалось в ответе, нужно добавить тег <meta-data>, твой есть, но имя отличается. Он показывает, как:

android:name="com.google.android.gms.games.onl.deepspace.zoorallye"

в ответе выше, показывает:

android:name="com.google.android.gms.games.APP_ID"

Пошел в Google Quickstart samples и обратите внимание на то, что все теги, как выше. В вашем коде не было ничего другого, вызывающего проблему. Надеюсь это поможет. Удачи.

0

Я полагаю, это может быть связано с отсутствием элемента метаданных com.google.android.gms.games.APP_ID в вашем AndroidManifest.xml

Это похоже на опечатку (вы заменили APP_ID вашим именем пакета?). Оно должно быть: <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />

Вы можете обратиться к TypeANumber основного образца AndroidManifest.xml https://github.com/playgameservices/android-basic-samples/blob/master/BasicSamples/TypeANumber/src/main/AndroidManifest.xml#L41

+0

Спасибо, я попробую это позже в этот день :) –

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