2013-09-03 2 views
4

Я разрабатываю одно приложение интеграции Google+. Я обращаюсь к официальному учебному пособию Google+. Моя проблема заключается в том, что когда я нажимаю кнопку входа в систему, в это время появляется одна ошибка сообщения об ошибке «Внутренняя ошибка возникает». Я не знаю, почему эта ошибка происходит, и я вижу следующие ссылки, но не получаю выход ....Внутренняя ошибка возникает при интеграции google plus

First Link

Second Link

Third Link

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; 
    } 
} 
+0

Вам нужно будет предоставить более подробную информацию, например, любые ошибки LogCat, отображающих. – BrettJ

+0

Ошибка logcat автоматически отображается сообщение «внутренняя ошибка». – Satheesh

+0

Вы решили это? Я столкнулся с той же проблемой. – Geek

ответ

0

Я решил свою проблему. Восстановить ключ sha1 с паролем android. Теперь это прекрасно работает для меня. Поэтому проблема заключается в создании ключа sha1.

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, чтобы протестировать приложение, убедитесь, использовать SHA1 отпечаток пальца в окне -> Prefernces -> Android -> Сборка в вашем Google + консолях

+0

Нет i получил ту же ошибку, чтобы назначить оба кода. Пожалуйста, поделитесь своим полным кодом ... Спасибо ... – Satheesh

2

Satheesh,

после Гот удалить этот файл .android/debug.keystore после перезагрузки ур затмения. новый ключ есть на Window -> Prefernces -> Android -> SHA1 отпечаток ключ u просто скопируйте это и добавьте новый проект в страницу консоли ur и вставьте ur новый ключ и имя пакета. после попытки его работы ...

+0

Вы тестируете одно и то же приложение на двух разных машинах? –

+0

ya Ojonugwa Ochalifu Я уже тестировал его работу. Я получил ту же ошибку, что и внутренняя ошибка. я изменил ключ sha1 и страницу консоли разработчика, создав новый проект, и введите название проекта и ключ sha1, чтобы включить deeplinking. его рабочий штраф. – arul

+0

Вот что я хотел попросить вас сделать, клавиша SHA1 работает только на одной машине. –

0

Вот один из случаев, решение которых помогает мне запустить мое приложение нормально

"An internal error occurred" with integration of Google Plus Login

так, этот ответ говорит, что вы должны заполнить «Согласия экран» левого бокового меню в Google консоли разработчиков, где u регистрирует ваше приложение.

Вот как это выглядит: enter image description here

Смежные вопросы