将BaseGameUtils项目导入库并修复了一些错误后,我遇到了这些错误:
GoogleApiClient.ApiOptions mGamesApiOptions = null;
GoogleApiClient.ApiOptions mPlusApiOptions = null;
GoogleApiClient.ApiOptions mAppStateApiOptions = null;
错误表示GoogleApiClient.ApiOptions无法解析为某种类型。 我得到的其他错误:
public void setGamesApiOptions(GoogleApiClient.ApiOptions options) {
doApiOptionsPreCheck();
mGamesApiOptions = options;
}
他们说mGamesApiOptions无法解析为变量,而且与之前的GoogleApiClient.ApiOptions相同。我已经将google_play_services_lib引用到了GameBaseUtils。香港专业教育学院在互联网上寻找一些没有成功的解释,我发现的唯一的事情是https://code.google.com/p/google-api-java-client/wiki/Setup,但也没有多大帮助,因为我真的不明白该做什么,有人可以帮忙吗? (顺便说一下,我使用eclipse)
答案 0 :(得分:10)
刚刚遇到同样的问题..这个解决方案有效
请使用此处提供的代码:https://gist.github.com/EmmanuelVinas/ef09a35bcc805ba6deb3
只需将GameHelper.java(BaseGameUtils)的导入内容切换到其末尾,然后粘贴该gist的内容作为替代。
答案 1 :(得分:2)
我的应用程序遇到了完全相同的问题。我认为他们必须在GameHelper.java
的最新更新中改变了一些内容。这是我尝试过的东西,但只是你知道,这只是摆脱了错误所以我可以编译我的代码,它不能解决问题的根源。
// Api options to use when adding each API, null for none
Games.GamesOptions mGamesApiOptions = null;
Plus.PlusOptions mPlusApiOptions = null;
Api.ApiOptions mAppStateApiOptions = null;
我还进一步改进了方法,以便Classes匹配......
/**
* Sets the options to pass when setting up the Games API. Call before
* setup().
*/
public void setGamesApiOptions(Games.GamesOptions options) {
doApiOptionsPreCheck();
mGamesApiOptions = options;
}
/**
* Sets the options to pass when setting up the AppState API. Call before
* setup().
*/
public void setAppStateApiOptions(Api.ApiOptions options) {
doApiOptionsPreCheck();
mAppStateApiOptions = options;
}
/**
* Sets the options to pass when setting up the Plus API. Call before
* setup().
*/
public void setPlusApiOptions(Plus.PlusOptions options) {
doApiOptionsPreCheck();
mPlusApiOptions = options;
}
我仍然遇到错误,所以我最终不得不摆脱这些addApi()
方法调用的第二个参数,因为它们不接受这些类类型。幸运的是,addApi()
方法不需要options参数,但删除它几乎完全违背了拥有这些变量的全部目的。
if (0 != (mRequestedClients & CLIENT_GAMES)) {
builder.addApi(Games.API); //, mGamesApiOptions);
builder.addScope(Games.SCOPE_GAMES);
}
if (0 != (mRequestedClients & CLIENT_PLUS)) {
builder.addApi(Plus.API); //, mPlusApiOptions);
builder.addScope(Plus.SCOPE_PLUS_LOGIN);
}
if (0 != (mRequestedClients & CLIENT_APPSTATE)) {
builder.addApi(AppStateManager.API); //, mAppStateApiOptions);
builder.addScope(AppStateManager.SCOPE_APP_STATE);
}
我真的希望有人提出真正的解决方案,或者他们更新GameHelper文件。这是一个非常烦人的问题。对不起,我无能为力。
编辑:我发现了when they changed this code in the GitHub project。然而,这些变化是在3个月前提交的,所以我很困惑为什么没有其他人遇到过这个问题。这是它的样子:- // Client objects we manage. If a given client is not enabled, it is null.
- GamesClient mGamesClient = null;
- PlusClient mPlusClient = null;
- AppStateClient mAppStateClient = null;
+ // the Google API client builder we will use to create GoogleApiClient
+ GoogleApiClient.Builder mGoogleApiClientBuilder = null;
- // What clients we manage (OR-able values, can be combined as flags)
+ // Api options to use when adding each API, null for none
+ GoogleApiClient.ApiOptions mGamesApiOptions = null;
+ GoogleApiClient.ApiOptions mPlusApiOptions = null;
+ GoogleApiClient.ApiOptions mAppStateApiOptions = null;
+
+ // Google API client object we manage.
+ GoogleApiClient mGoogleApiClient = null;
答案 2 :(得分:0)
我设法通过更新到最新的BaseGameUtils库来解决这个问题: