我正在使用Eclipse,LibGdx 1.0.1,最新的Google Play Lib和来自https://github.com/playgameservices/android-samples的最新BaseGameUtils
(Gradle项目)
我的BaseGameUtils有一些错误
GameHelper.java
// Api options to use when adding each API, null for none
GoogleApiClient.ApiOptions mGamesApiOptions = null; //error with this line
GoogleApiClient.ApiOptions mPlusApiOptions = null; //error with this line
GoogleApiClient.ApiOptions mAppStateApiOptions = null; //error with this line
/**
* Sets the options to pass when setting up the Games API. Call before
* setup().
*/
public void setGamesApiOptions(GoogleApiClient.ApiOptions options) { //error with this line
doApiOptionsPreCheck();
mGamesApiOptions = options; //error with this line
}
/**
* Sets the options to pass when setting up the AppState API. Call before
* setup().
*/
public void setAppStateApiOptions(GoogleApiClient.ApiOptions options) { //error with this line
doApiOptionsPreCheck();
mAppStateApiOptions = options; //error with this line
}
/**
* Sets the options to pass when setting up the Plus API. Call before
* setup().
*/
public void setPlusApiOptions(GoogleApiClient.ApiOptions options) { //error with this line
doApiOptionsPreCheck();
mPlusApiOptions = options; //error with this line
}
/**
* Creates a GoogleApiClient.Builder for use with @link{#setup}. Normally,
* you do not have to do this; use this method only if you need to make
* nonstandard setup (e.g. adding extra scopes for other APIs) on the
* GoogleApiClient.Builder before calling @link{#setup}.
*/
public GoogleApiClient.Builder createApiClientBuilder() {
if (mSetupDone) {
String error = "GameHelper: you called GameHelper.createApiClientBuilder() after "
+ "calling setup. You can only get a client builder BEFORE performing setup.";
logError(error);
throw new IllegalStateException(error);
}
GoogleApiClient.Builder builder = new GoogleApiClient.Builder(
mActivity, this, this);
if (0 != (mRequestedClients & CLIENT_GAMES)) {
builder.addApi(Games.API, mGamesApiOptions); //error with this line
builder.addScope(Games.SCOPE_GAMES);
}
if (0 != (mRequestedClients & CLIENT_PLUS)) {
builder.addApi(Plus.API, mPlusApiOptions); //error with this line
builder.addScope(Plus.SCOPE_PLUS_LOGIN);
}
if (0 != (mRequestedClients & CLIENT_APPSTATE)) {
builder.addApi(AppStateManager.API, mAppStateApiOptions); //error with this line
builder.addScope(AppStateManager.SCOPE_APP_STATE);
}
mGoogleApiClientBuilder = builder;
return builder;
}
所以我在行上添加//error with this line
,你猜错了。
就像我之前提到的,我相信我拥有最新的库,并且我确信我的项目是正确链接的。我在AndroidManifest.xml
文件中也有必要的代码行。
答案 0 :(得分:1)
Google Play游戏服务4.4上的一些API更改尚未反映在Android示例项目(https://github.com/playgameservices/android-samples/tree/master/BasicSamples/libraries/BaseGameUtils)上或由Google记录(据我所知)。
查看关于G + Android Developers条目的评论:
https://plus.google.com/+AndroidDevelopers/posts/8957tqzymuM
您可以使用社区修改的GameHelper,等待Google更新示例项目或反向GPGS 4.3。
答案 1 :(得分:1)
我使用了来自https://github.com/playgameservices/android-samples/tree/master/BasicSamples/libraries/BaseGameUtils/src/main/java/com/google/example/games/basegameutils的来源,但我的应用程序因以下错误而崩溃:
java.lang.NullPointerException: Null options are not permitted for this Api at
.. com.google.example.games.basegameutils.GameHelper.createApiClientBuilder(GameHelper.java:286 ) at
com.google.example.games.basegameutils.GameHelper.setup(GameHelper.java:319) at
com.google.example.games.basegameutils.BaseGameActivity.onCreate(BaseGameActivity.java:105).
我更改了BaseGameActivity onCreate方法:
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
if (mHelper == null) {
getGameHelper();
}
mHelper.setPlusApiOptions(new Plus.PlusOptions.Builder().build());
mHelper.setup(this);
}
并且错误消失了。
答案 2 :(得分:0)
请使用此处提供的代码:https://gist.github.com/EmmanuelVinas/ef09a35bcc805ba6deb3
只需从GameHelper.java的导入到其末尾的所有内容,然后粘贴该要点的内容作为替代。
它有效