4

私は1つのGoogle+統合アプリケーションを開発しています.Google+の公式チュートリアルを参照しています.私の問題は、その時点でサインインボタンを押すと、「内部エラーが発生しました」というトーストメッセージエラーが1つ表示されることです. このエラーが発生する理由がわかりません。次のリンクが表示されますが、出力が得られません....

最初のリンク

2 番目のリンク

3 番目のリンク

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast;
import com.example.bluetoothsocialsharing.R;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.plus.PlusClient;
public class GooglePlusActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener
{

    //static final String[] SCOPES = new String[] { Scopes.PLUS_PROFILE };

    @Override
    protected void onStop() {
        super.onStop();
        mPlusClient.disconnect();
    }
    /*@Override
    protected void onDestroy() {
        super.onDestroy();
        mPlusClient.disconnect();
    }*/
    @Override
    protected void onStart() {
        super.onStart();
        mPlusClient.connect();
    }
        private static final String TAG = "ExampleActivity";
        private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
        private ProgressDialog mConnectionProgressDialog;
        private PlusClient mPlusClient;
        private ConnectionResult mConnectionResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_google_plus);
        mPlusClient = new PlusClient.Builder(this, this, this)
        .setVisibleActivities("http://schemas.google.com/AddActivity","http://schemas.google.com/BuyActivity")
        .build();
        //mPlusClient=new PlusClient(this,this,this,SCOPES);
        // Progress bar to be displayed if the connection failure is not resolved.
        mConnectionProgressDialog = new ProgressDialog(this);
        mConnectionProgressDialog.setMessage("Signing in...");
        mConnectionProgressDialog.show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.google_plus, menu);
        return true;
    }

    @Override
    public void onConnectionFailed(ConnectionResult result) {
        Log.i(TAG,"ConnectionResult:"+result);
      if (mConnectionProgressDialog.isShowing()) {
        // The user clicked the sign-in button already. Start to resolve
        // connection errors. Wait until onConnected() to dismiss the
        // connection dialog.
        if (result.hasResolution()) {
          try {
                Log.i(TAG,"EnterTryBlock");
                   result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
           } catch (SendIntentException e) {
               Log.i(TAG,"EnterCatchBlock");
                   mPlusClient.connect();
           }
        }
      }
      // Save the result and resolve the connection failure upon a user click.
      setmConnectionResult(result);
    }

    @Override
    protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
        if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) {
            setmConnectionResult(null);
            mPlusClient.connect();
        }
    }

    @Override
    public void onConnected(Bundle connectionHint) {
        String accountName = mPlusClient.getAccountName();
        Toast.makeText(this, accountName + " is connected.", Toast.LENGTH_LONG).show();
    }
    @Override
    public void onDisconnected() {
        Log.d(TAG, "disconnected");
    }

    public ConnectionResult getmConnectionResult() {
        return mConnectionResult;
    }

    public void setmConnectionResult(ConnectionResult mConnectionResult) {
        this.mConnectionResult = mConnectionResult;
    }
}
4

4 に答える 4

1

私も同じ問題を抱えていました。ガイドにはそう書いてある

mPlusClient = new PlusClient.Builder(this, this, this)
                .setActions("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity")
                .setScopes("PLUS_LOGIN")  // Space separated list of scopes
                .build();

私はそれをこれに変更しました、そしてそれはうまくいきました

mPlusClient = new PlusClient.Builder(this, this, this)
                .setActions("http://schemas.google.com/AddActivity",
                        "http://schemas.google.com/BuyActivity")
                .build();

アプリのテストに Eclipse を使用している場合は、[ウィンドウ] -> [設定] -> [Android] -> [Google + コンソールでビルド] で SHA1 フィンガー プリントを使用してください。

于 2013-11-21T04:39:55.043 に答える
0

これは、アプリを正常に実行するのに役立つケースの1つです

Google Plus Login の統合による「内部エラーが発生しました」

したがって、この回答では、アプリを登録する Google 開発者コンソールの左側のメニューの「同意画面」に記入する必要があると書かれています。

これがどのように見えるか:ここに画像の説明を入力

于 2014-09-19T13:35:51.523 に答える
0

問題を解決しました。パスワード android で sha1 キーを再作成します。これでうまくいきました。したがって、問題はsha1キーの作成にあります。

于 2014-07-24T06:36:54.443 に答える