Ошибка при внедрении Google Play Games

Я получаю сообщение об ошибке в операторе импорта, который я использую, чтобы попробовать реализовать Play Games с моим приложением.

-Импорт com.google.android.gms.games.GamesClient не может быть разрешен

У меня есть BaseGameUtils, ссылающийся на google-play-services_lib, а мой проект ссылается на BaseGameUtils как на библиотеку.

Насколько я понимаю, GameClient должен был быть устаревшим с 7 февраля 2014 года, но при просмотре примера кода Google (например, ButtonClicker) он по-прежнему использует этот импорт и некоторые вызовы методов из импорта.

Я получил код, который использую, из образца репозитория приложений на GitHub от Google для ButtonClicker2000, некоторые из этот код был переработан и использован в программе, в которой у меня тоже есть ошибки.

Это вся информация, которую я могу предоставить. Если что-нибудь еще поможет, пожалуйста, дайте мне знать.


person OKGimmeMoney    schedule 29.04.2014    source источник
comment
Моя версия BaseGameUtils НЕ ссылается на GamesClient в какой-либо момент (хотя в комментариях все еще есть упоминания об этом). Вы загрузили текущую версию с здесь?   -  person free3dom    schedule 30.04.2014
comment
Думаю, проблема в том, что я использовал код с GitHub, а он не обновляется. Вы знаете, что именно нужно изменить в старом коде GitHub?   -  person OKGimmeMoney    schedule 04.05.2014


Ответы (1)


Я боролся с примером ButtonClicker2000 в течение пары дней, и у меня была та же проблема, что и у вас.

Я думаю, что проблема в примере кода заключается в том, что некоторые строки не обновляются. Если вы посмотрите эту страницу, то легко увидите, что обновленные версии тех там лежат линии. Однако коды на странице GitHub обновлены не полностью.

Поскольку класс GamesClient удален безвозвратно, эти утверждения

GamesClient.EXTRA_PLAYERS 
GamesClient.EXTRA_MIN_AUTOMATCH_PLAYERS 
GamesClient.EXTRA_MAX_AUTOMATCH_PLAYERS
GamesClient.EXTRA_INVITATION
GamesClient.STATUS_OK

должен быть заменен на

Games.EXTRA_PLAYERS_IDS
Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_INVITATION
GamesStatusCodes.STATUS_OK

Также эту строку можно удалить:

import com.google.android.gms.games.GamesClient;

Нет необходимости импортировать GoogleApiClient, потому что он уже импортирован в GameHelper.java.

После изменения этих строк вручную и импорта классов Multiplayer и GamesStatusCodes мне удалось скомпилировать код. Надеюсь, это решит и вашу проблему.

person alierdogan7    schedule 03.05.2014
comment
Сейчас я собираюсь рассмотреть возможность реализации этих изменений. Вы также получали ошибку при попытке расширить BaseGameActivity? Я получаю сообщение об ошибке: Тип android.support.v4.app.FragmentActivity не может быть разрешен. На него косвенно ссылаются из необходимых файлов .class - person OKGimmeMoney; 04.05.2014
comment
Также стоит отметить, что оператор import, который импортирует GamesClient, можно удалить и, при необходимости, заменить на import com.google.android.gms.common.api.GoogleApiClient; - person OKGimmeMoney; 04.05.2014
comment
В моем случае проблем с FragmentActivity не было. Возможно, вам стоит проверить свои библиотеки или обновить их. - person alierdogan7; 04.05.2014