2015-06-24 2 views
3

Мое приложение отключается без какого-либо сообщения об ошибке на googleApiClient.connect(). Он никогда не попадает в onConnectionFailed. Вот что у меня есть:Ошибка приложения GoogleApiClient Android при подключении()

в MainActivity

public class MainMenu extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { 

    public static final int REQUEST_LEADERBOARD = 1; 
    public static int SCREEN_WIDTH; 
    public static int SCREEN_HEIGHT; 
    private GoogleApiClient googleApiClient; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     SCREEN_WIDTH = metrics.widthPixels; 
     SCREEN_HEIGHT = metrics.heightPixels; 

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

    public void newGame(View view) { 
     Intent intent = new Intent(MainMenu.this, Game.class); 
     startActivity(intent); 
     finish(); 
    } 

    public void highScore(View view) { 
     if (isSignedIn()) { 
      startActivityForResult(Games.Leaderboards.getLeaderboardIntent(googleApiClient, 
        String.valueOf(R.string.leaderboard_id)), REQUEST_LEADERBOARD); 
     } 
     else { 
      System.out.println("not sign in"); 
     } 
    } 

    @Override 
    public void onConnected(Bundle bundle) { 

    } 

    @Override 
    public void onConnectionSuspended(int i) { 

    } 

    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 
     System.out.println("failed"); 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     googleApiClient.connect(); //here it crashed 
    } 

    private boolean isSignedIn() { 
     return (googleApiClient != null && googleApiClient.isConnected()); 
    } 
} 

Что я сделал:

Я сгенерирована подписал APK, у меня есть ключ sha1. Я опубликовал приложение для альфа-тестирования.

манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="my.package" 
      android:versionCode="2" 
      android:versionName="1.1"> 
    <uses-sdk android:minSdkVersion="1"/> 



    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" 
       android:theme="@style/Theme.AppCompat.NoActionBar" 
       android:isGame="true" > 

     <meta-data 
       android:name="com.google.android.gms.games.APP_ID" 
       android:value="@string/app_id" /> 
     <meta-data 
       android:name="my.package.version" 
       android:value="com.google.android.gms.version" /> 


     <activity android:name=".activities.MainMenu"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name=".activities.Game"/> 
     <activity android:name=".activities.GameOver"/> 
     <activity android:name=".activities.HighScore"/> 
    </application> 
</manifest> 

Я тестирую его на устройство с помощью Google Play установлена ​​служба. Не могли бы вы помочь мне?

+3

Вы можете разместить аварии StackTrace тоже? –

+0

Вы проверили, правильно ли выполнялась инициализация googleApiClient? – BSMP

+0

Хотелось бы, но ничего. Нет сообщения об ошибке, нет неотображаемого ... Устройство просто показывает всплывающее окно, информирующее о том, что приложение разбилось. .. BSMP: да .. нет ошибки до подключения –

ответ

0

Вы должны добавить разрешение на доступ к вашему манифесту.

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

Если вам нужна дополнительная помощь, вы должны показать ошибку stacktrace.

Надеюсь, это поможет вам!

+0

, что не помогло .. как я уже сказал, нет сообщения об ошибке. –

0

Решение простое

<meta-data 
    android:name="my.package.version" 
    android:value="com.google.android.gms.version" /> 

нонсенс.

должно быть:

<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 
Смежные вопросы