Google Play服务GameHelper NPE createApiClientBuilder(此API不允许使用空选项)

joh*_*gru 0 crash android google-play-services

自最新的Google Play服务和Android Studio更新(0.5.9)后,我发现了这个恼人的错误.当我使用GameHelper开始活动时,应用程序崩溃了.这些错误是我放弃制作应用程序的兴趣的原因.我从Googles GitHub页面获得了最新版本的GameHelper.

活动:

mmmHelper = new GameHelper(this, GameHelper.CLIENT_ALL);

GameHelper.GameHelperListener listener = new GameHelper.GameHelperListener() {
            @Override
            public void onSignInSucceeded() {
                // handle sign-in succeess
            }
            @Override
            public void onSignInFailed() {
                // handle sign-in failure (e.g. show Sign In button)
            }

        };
        mmmHelper.setup(listener);


        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .build();
        mGoogleApiClient.connect();

        Log.d(TAG, "Starting setup.");
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
            public void onIabSetupFinished(IabResult result) {
                Log.d(TAG, "Setup finished.");

                if (!result.isSuccess()) {
                    // Oh noes, there was a problem.
                    Log.d(TAG, "Problem setting up In-app Billing: " + result);
                }
                // Hooray, IAB is fully set up!
                mHelper.queryInventoryAsync(mGotInventoryListener);
            }
        });
Run Code Online (Sandbox Code Playgroud)

joh*_*gru 6

我通过将CLIENT_ALL更改为CLIENT_GAMES来修复崩溃!

问题:

mmmHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
Run Code Online (Sandbox Code Playgroud)

新鲜:

mmmHelper = new GameHelper(this, GameHelper.CLIENT_GAMES);
Run Code Online (Sandbox Code Playgroud)

我只使用Games.API,这可能是应用程序崩溃CLIENT_ALL的原因.

mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .build();
mGoogleApiClient.connect();
Run Code Online (Sandbox Code Playgroud)