2014-05-22 60 views
2

我使用Eclipse,LibGdx 1.0.1,谷歌最新的游戏库服务/ BaseGameUtils(摇篮),以及最新BaseGameUtils从https://github.com/playgameservices/android-samples错误使用LibGdx与谷歌播放

(摇篮项目)

我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文件中也有必要的代码行。

回答

1

在Google Play游戏服务4.4中有一些API尚未反映在Android示例项目中(https://github.com/playgameservices/android-samples/tree/master/BasicSamples/libraries/BaseGameUtils)或Google记录(据我所知)。

看一看对G + Android开发者入门的评论:

https://plus.google.com/+AndroidDevelopers/posts/8957tqzymuM

您可以使用修改GameHelper社区,等待谷歌更新示例项目或推翻GPGS 4.3。

+0

我一直在疯狂的人....希望它很快得到更新。谢谢 – WaZz

+0

没问题。如果问题解决了,请提出答案。 – objitsu

+0

我的代表不够高。我在哪里可以得到4.3? – WaZz

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); 
} 

和错误消失。

+0

这实际上工作! –