2013-06-16 13 views
8

Sto creando un'applicazione e desidero integrarla con G +, per effettuare il login utente con l'account Google. Per creare l'app utilizzo lo Studio Android .Come utilizzare Google Plus Integration in Android Studio

Ho letto molte domande e risposte su Stack Overflow ma non riesco a correggere la mia app!

Qui ci sono passi che ho fatto:
1. Aggiungere google-play-services.jar a librerie cartella del mio progetto
2. Fare clic su "Aggiungi Come Libreria" a file jar nel progetto Android-Studio explorer
3. Aggiungere script per il file java da esempio nel web
4. Aggiungere google-play-services.jar libreria per Build.Gradle file di
5. Avvio applicazione rende crash

La domanda è: Come aggiungere l'ingerazione di Google+ all'applicazione eseguita con Android Studio, sto facendo qualcosa di sbagliato ?, Grazie per il vostro aiuto.

qui sono i miei codici sorgente:

Java Classe:

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 StartActivity extends Activity implements View.OnClickListener, ConnectionCallbacks, OnConnectionFailedListener { 

    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.loading_screen); 

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

     mConnectionProgressDialog = new ProgressDialog(this); 
     mConnectionProgressDialog.setMessage("Signing in..."); 

     initializeSplashElements(); 

    } 


    ///  ***  ///   PLUS INTEGRATION  ///  ***  //// 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     mPlusClient.connect(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     mPlusClient.disconnect(); 
    } 

    @Override 
    public void onConnectionFailed(ConnectionResult result) { 
     if (result.hasResolution()) { 
      try { 
       result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); 
      } catch (IntentSender.SendIntentException e) { 
       mPlusClient.connect(); 
      } 
     } 
     // Save the result and resolve the connection failure upon a user click. 
     mConnectionResult = result; 
    } 

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

    @Override 
    public void onConnected(Bundle bundle) { 
     String accountName = mPlusClient.getAccountName(); 
     Toast.makeText(this, accountName + " is connected.", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public void onDisconnected() { 
     Log.d(TAG, "disconnected"); 
    } 

    ///  ***  ///   PLUS INTEGRATION  ///  ***  /// 

    (...) 

} 

layout XML:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       tools:context=".StartActivity" 
       android:clickable="false" 
       android:background="@drawable/ziel_pomar_tlo"> 

    <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="150dp" 
      android:id="@+id/splashLogo" 
      android:src="@drawable/catch_up_logo_flatten" 
      android:contentDescription="@string/catchup_logo_describe" 
      android:layout_marginTop="40dp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:focusable="false"/> 

    <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="@string/loading_3dot" 
      android:id="@+id/loadingText" 
      android:enabled="true" 
      android:gravity="center" 
      android:textSize="40dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginLeft="35dp" 
      android:layout_marginRight="35dp" 
      android:layout_marginBottom="35dp"/> 

    <ScrollView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/scrollView" 
      android:layout_above="@+id/loadingText" 
      android:layout_below="@+id/splashLogo" 
      android:layout_margin="10dp" 
      android:layout_alignParentEnd="false" 
      android:layout_centerHorizontal="true"> 

     <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:baselineAligned="false" 
       android:clickable="false" 
       > 

      <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="top" 
        android:id="@+id/gps_row"> 

       <TextView 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/loading_screen_no_gps" 
         android:id="@+id/gps_desc" 
         android:textSize="20dp"/> 

       <LinearLayout 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:weightSum="3" 
         android:layout_marginTop="10dp"> 

        <Button 
          style="?android:attr/buttonStyleSmall" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="@string/loading_screen_no_gps_settings" 
          android:id="@+id/gps_settings" 
          android:layout_weight="2"/> 

        <Button 
          style="?android:attr/buttonStyleSmall" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="@string/loading_screen_no_gps_ok" 
          android:id="@+id/gps_fixed" 
          android:layout_weight="1"/> 
       </LinearLayout> 
      </LinearLayout> 

      <LinearLayout 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/web_row" 
        android:layout_gravity="bottom|top" 
        android:layout_marginTop="20dp"> 

       <TextView 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/loading_screen_no_web" 
         android:id="@+id/web_desc" 
         android:textSize="20dp"/> 

       <LinearLayout 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:weightSum="3" 
         android:layout_marginTop="10dp"> 

        <Button 
          style="?android:attr/buttonStyleSmall" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="@string/loading_screen_no_web_settings" 
          android:id="@+id/web_wifi_settings" 
          android:layout_weight="1"/> 

        <Button 
          style="?android:attr/buttonStyleSmall" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="@string/loading_screen_no_web_settings2" 
          android:id="@+id/web_3g_settings" 
          android:layout_weight="1"/> 

        <Button 
          style="?android:attr/buttonStyleSmall" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:text="@string/loading_screen_no_web_ok" 
          android:id="@+id/web_fixed" 
          android:layout_weight="1"/> 
       </LinearLayout> 
      </LinearLayout> 
     </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 

Build.Gradle:

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile files('libs/android-support-v4.jar', 'libs/google-play-services.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 17 
     compileSdkVersion 17 
    } 
} 

risposta

9

È possibile utilizzare Google Repository, senza importare qualsiasi librerie (.jar) nel codice

UPDATE: se si cerca di Google (o di terzi) si libreria può controllare: http://gradleplease.appspot.com/ (da Chris Broadfoot, un Google Developer)

dependencies { 
    compile 'com.google.android.gms:play-services:4.4.52' 
    compile 'com.android.support:support-v4:19.1.0' 
    // compile files('libs/android-support-v4.jar') // OLD: can remove 

    // Other useful library 
    // compile 'com.android.support:appcompat-v7:19.1.0' 
    // compile 'com.android.support:gridlayout-v7:19.1.0' 
    // compile 'com.android.support:mediarouter-v7:19.1.0' 
    // compile 'com.android.support:support-v13:19.1.0' 

    // Note: these libraries require the "Google Repository" and "Android Repository" 
    //  to be installed via the SDK manager. 
} 

Rif: https://plus.google.com/+AndroidDevelopers/posts/4Yhpn6p9icf

+0

Saluti per questo. Come possiamo trovare l'ultima versione della dipendenza di Google Play Services, ad esempio, per sostituire il '4.4.52' parte con? –

0

L'integrazione di Google in Android Studio è molto semplice attenersi alla seguente procedura.

1. Aggiungere la dipendenza dei servizi di riproduzione a build.gradle.

2.Add JSON file di configurazione nella directory di applicazione è possibile ottenere da Google Developer console

3.Build GoogleSignInOption e GoogleApiClient e iniziare a Google login sul tasto di scatto ..

per maggiori dettagli si può passare attraverso questo tutorial Google plus Integration in android studio

Problemi correlati