0

こんにちは友人、ゲームサービスの例、つまり「ボタンクリッカー」をプレイしようとしています。私がやりたいのは、招待ボタンクリックで他の参加者に現在の時間を送信することです。 ,requestcode,bundle)、ここで問題に直面します。

ケース 1: 現在の時間をバンドルに含む 3 つのパラメーターを使用して 2 番目の方法を試しましたが、その例を実行するとエラーが発生します

それのコード:

@Override
    public void onClick(View v)
    {
        Intent intent;


        Bundle BundleTimer = new Bundle();
        BundleTimer.putString("StartTime",millisecond);

        switch (v.getId()) {
            case R.id.button_single_player:
            case R.id.button_single_player_2:
                resetGameVars();
                startGame(false);
                break;
            case R.id.button_sign_in:
                // user wants to sign in
                if (!verifyPlaceholderIdsReplaced())
                {
                    showAlert("Error", "Sample not set up correctly. Please see README.");
                    return;
                }
                beginUserInitiatedSignIn();
                break;
            case R.id.button_sign_out:
                signOut();
                switchToScreen(R.id.screen_sign_in);
                break;
            case R.id.button_invite_players:
                // show list of invitable players
                intent = getGamesClient().getSelectPlayersIntent(1, 3);

                switchToScreen(R.id.screen_wait);
                startActivityForResult(intent, RC_SELECT_PLAYERS, BundleTimer);
                break;
            case R.id.button_see_invitations:
                // show list of pending invitations
                intent = getGamesClient().getInvitationInboxIntent();

                switchToScreen(R.id.screen_wait);
                startActivityForResult(intent, RC_INVITATION_INBOX, BundleTimer);
                break;
            case R.id.button_accept_popup_invitation:
                // user wants to accept the invitation shown on the invitation
                // popup
                // (the one we got through the OnInvitationReceivedListener).
                acceptInviteToRoom(mIncomingInvitationId);
                mIncomingInvitationId = null;
                break;
        }
    }

ケース 1 の logcat:

> 08-30 19:26:28.687: E/AndroidRuntime(13846): FATAL EXCEPTION: main
> 08-30 19:26:28.687: E/AndroidRuntime(13846):
> java.lang.NoSuchMethodError:
> com.example1.playservicedemo1.multiplayer.startActivityForResult 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> com.example1.playservicedemo1.multiplayer.onClick(multiplayer.java:215)
> 08-30 19:26:28.687: E/AndroidRuntime(13846):  at
> android.view.View.performClick(View.java:2485) 08-30 19:26:28.687:
> E/AndroidRuntime(13846):  at
> android.view.View$PerformClick.run(View.java:9080) 08-30 19:26:28.687:
> E/AndroidRuntime(13846):  at
> android.os.Handler.handleCallback(Handler.java:587) 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> android.os.Handler.dispatchMessage(Handler.java:92) 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> android.os.Looper.loop(Looper.java:130) 08-30 19:26:28.687:
> E/AndroidRuntime(13846):  at
> android.app.ActivityThread.main(ActivityThread.java:3687) 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> java.lang.reflect.Method.invokeNative(Native Method) 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> java.lang.reflect.Method.invoke(Method.java:507) 08-30 19:26:28.687:
> E/AndroidRuntime(13846):  at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
> 08-30 19:26:28.687: E/AndroidRuntime(13846):  at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 08-30
> 19:26:28.687: E/AndroidRuntime(13846):    at
> dalvik.system.NativeStart.main(Native Method)

ケース 2: ここでは、intent.putextra("statrtime",millisecond) を使用してインテントでデータを送信しようとしましたが、同じサンプル コードを実行している他のアプリでこの余分な値を取得しようとすると、インテントから getextra の nullpointer を介して取得されます。

それのコード

 @Override
    public void onClick(View v)
    {
        Intent intent;


        switch (v.getId()) {
            case R.id.button_single_player:
            case R.id.button_single_player_2:
                resetGameVars();
                startGame(false);
                break;
            case R.id.button_sign_in:
                // user wants to sign in
                if (!verifyPlaceholderIdsReplaced())
                {
                    showAlert("Error", "Sample not set up correctly. Please see README.");
                    return;
                }
                beginUserInitiatedSignIn();
                break;
            case R.id.button_sign_out:
                signOut();
                switchToScreen(R.id.screen_sign_in);
                break;
            case R.id.button_invite_players:
                // show list of invitable players
                intent = getGamesClient().getSelectPlayersIntent(1, 3);
                intent.putExtra("StartTime", millisecond);
                switchToScreen(R.id.screen_wait);
                startActivityForResult(intent, RC_SELECT_PLAYERS);
                break;
            case R.id.button_see_invitations:
                // show list of pending invitations
                intent = getGamesClient().getInvitationInboxIntent();
                intent.putExtra("StartTime", millisecond);
                switchToScreen(R.id.screen_wait);
                startActivityForResult(intent, RC_INVITATION_INBOX);
                break;
            case R.id.button_accept_popup_invitation:
                // user wants to accept the invitation shown on the invitation
                // popup
                // (the one we got through the OnInvitationReceivedListener).
                acceptInviteToRoom(mIncomingInvitationId);
                mIncomingInvitationId = null;
                break;
        }
    }

ケース 2 の logcat:

> 08-30 19:01:46.264: E/AndroidRuntime(25770):
> java.lang.NullPointerException: println needs a message 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> android.util.Log.println_native(Native Method) 08-30 19:01:46.264:
> E/AndroidRuntime(25770):  at android.util.Log.i(Log.java:159) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> com.example1.playservicedemo1.multiplayer.onInvitationReceived(multiplayer.java:573)
> 08-30 19:01:46.264: E/AndroidRuntime(25770):  at
> com.google.android.gms.internal.bj$n.a(Unknown Source) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> com.google.android.gms.internal.bj$n.a(Unknown Source) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> com.google.android.gms.internal.p$b.p(Unknown Source) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> com.google.android.gms.internal.p$a.handleMessage(Unknown Source)
> 08-30 19:01:46.264: E/AndroidRuntime(25770):  at
> android.os.Handler.dispatchMessage(Handler.java:99) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> android.os.Looper.loop(Looper.java:137) 08-30 19:01:46.264:
> E/AndroidRuntime(25770):  at
> android.app.ActivityThread.main(ActivityThread.java:5103) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> java.lang.reflect.Method.invokeNative(Native Method) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> java.lang.reflect.Method.invoke(Method.java:525) 08-30 19:01:46.264:
> E/AndroidRuntime(25770):  at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
> 08-30 19:01:46.264: E/AndroidRuntime(25770):  at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 08-30
> 19:01:46.264: E/AndroidRuntime(25770):    at
> dalvik.system.NativeStart.main(Native Method)

この例では、選択したプレーヤーに期間を送信して、その時間が経過しても応答しない場合はその要求に対してプレイしないようにし、その期間内に応答する場合はゲームをプレイできるようにします。

友人私はこれで立ち往生しています、これを成し遂げる方法を提案してください、悪い英語でごめんなさい、ありがとう

4

1 に答える 1