Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Utilizando facebook sdk en android studio

Estoy siguiendo el SDK de Facebook para Android con Android Studio . Cuando ejecuto mi aplicación estoy recibiendo la advertencia mencionada a continuación.

Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project. 

¿Cómo debo solucionar esto? ¡Gracias por adelantado!

UPDATE1:

He intentado @Scott respuesta de Barta y obtener el siguiente mensaje de error.

  A problem occurred configuring project ':App'. > Failed to notify project evaluation listener. > A problem occurred configuring project ':libraries:facebook'. > Failed to notify project evaluation listener. > Could not resolve all dependencies for configuration ':libraries:facebook:_DebugCompile'. > Could not find any version that matches com.android.support:support-v4:+. Required by: MyApplication2.libraries:facebook:unspecified 

  • Facebook login NullPointerException
  • El inicio de sesión de Android facebook no funciona con la aplicación de Facebook instalada
  • Autenticación de Facebook sin botón de inicio de sesión
  • Facebook LoginButton para Android no toma los valores de login_text y logout_text pasados ​​de XML
  • La aplicación se bloquea después del primer inicio de sesión en Facebook
  • Autorización para Android Facebook SDK 3.0
  • Buscando ejemplos de SDK en Android de Facebook
  • Obtener el permiso de publish_action después de obtener permisos de lectura de Facebook
  • 12 Solutions collect form web for “Utilizando facebook sdk en android studio”

    NOTA

    Para Android Studio 0.5.5 y posteriores, y con versiones posteriores del SDK de Facebook, este proceso es mucho más sencillo de lo que se documenta a continuación (que fue escrito para versiones anteriores de ambos). Si está ejecutando lo último, todo lo que necesita hacer es:

    1. Descargue el SDK de Facebook desde https://developers.facebook.com/docs/android/
    2. Descomprimir el archivo
    3. En Android Studio 0.5.5 o posterior, elija "Import Module" en el menú File.
    4. En el asistente, establezca la ruta de origen del módulo para importar como el directorio "facebook" dentro del archivo descomprimido. (Nota: si selecciona toda la carpeta principal, traerá no sólo la biblioteca en sí, sino también todas las aplicaciones de ejemplo, cada una como un módulo independiente. Esto puede funcionar pero probablemente no es lo que desea).
    5. Abre la estructura del proyecto mediante Ctrl + Shift + Alt + S y luego selecciona la pestaña de dependencias. Haga clic en el botón + y seleccione Dependencia del módulo. En la nueva ventana pop up seleccione :facebook.
    6. Usted debe ser bueno para ir.

    Instrucciones para Android Studio más antiguo y SDK de Facebook más antiguo

    Esto se aplica a Android Studio 0.5.4 y anteriores, y tiene más sentido para las versiones del SDK de Facebook antes de que Facebook ofreciera archivos de compilación de Gradle para la distribución. No sé en qué versión del SDK hicieron ese cambio.

    Las instrucciones de Facebook bajo "Importar el SDK en un proyecto de Android Studio" en su página https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android-using-android-studio/3.0/ están equivocadas Para proyectos basados ​​en Gradle (es decir, su proyecto se creó utilizando el asistente de Nuevo proyecto de Android Studio y / o tiene un archivo build.gradle para su módulo de aplicación). Siga estas instrucciones en su lugar:

    1. Cree una carpeta de libraries debajo del directorio principal del proyecto. Por ejemplo, si su proyecto es HelloWorldProject, crearía una carpeta HelloWorldProject/libraries .

    2. Ahora copie todo el directorio de facebook de la instalación del SDK en la carpeta de libraries que acaba de crear.

    3. Elimine la carpeta libs en el directorio de facebook . Si lo desea, elimine el build.xml project.properties , build.xml , .classpath y .project . Archivos también. No los necesitas.

    4. Cree un archivo build.gradle en el directorio de facebook con el siguiente contenido:

       buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:+' } android { compileSdkVersion 17 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] } } } 

      Tenga en cuenta que, dependiendo de cuándo siga estas instrucciones en comparación con cuando se escribe esto, es posible que deba ajustar la línea classpath 'com.android.tools.build:gradle:0.6.+' para hacer referencia a una versión más reciente del complemento Gradle . Pronto requeriremos la versión 0.7 o posterior. Pruébelo, y si obtiene un error que se requiere una versión más reciente del complemento Gradle, esa es la línea que tiene que editar.

    5. Asegúrese de que la Biblioteca de soporte de Android en su gestor de SDK esté instalada.

    6. Edite su archivo settings.gradle en el directorio principal de su aplicación y agregue esta línea:

       include ':libraries:facebook' 
    7. Si su proyecto ya está abierto en Android Studio, haga clic en el botón "Proyecto de sincronización con archivos Gradle" en la barra de herramientas. Una vez hecho esto, aparecerá el módulo de facebook . Introduzca aquí la descripción de la imagen

    8. Abra el cuadro de diálogo Estructura del proyecto. Seleccione Módulos en la lista de la izquierda, haga clic en el módulo de su aplicación, haga clic en la pestaña Dependencias y haga clic en el botón + para agregar una nueva dependencia. Introduzca aquí la descripción de la imagen
    9. Seleccione "Dependencia del módulo". Se abrirá un diálogo con una lista de módulos para elegir; Seleccione ": libraries: facebook". Introduzca aquí la descripción de la imagen
    10. Haga clic en Aceptar en todos los cuadros de diálogo. Android Studio resincronizará automáticamente su proyecto (lo que hace innecesario hacer clic en el botón "Sincronizar proyecto con archivos Gradle" de nuevo) y recoger la nueva dependencia. Usted debe ser bueno para ir.

    Facebook realmente ha añadido el SDK a los repositorios de Maven Central. Para configurar su proyecto usando la instancia del repo de maven, necesitará hacer 2 cosas:

    1. En el archivo build.gradle de nivel superior de su proyecto, añada los repositorios de Maven Central. Mina se ve así:

       repositories { jcenter() // This is the default repo mavenCentral() // This is the Maven Central repo } 
    2. En el archivo build.grade de nivel de aplicación , añada la dependencia de Facebook sdk:

       dependencies { compile 'com.facebook.android:facebook-android-sdk:4.5.0' // Adjust the version accordingly // All your other dependencies. } 

    También puede ajustar la versión específica de SDK de Facebook también. Para obtener una lista de versiones disponibles en el repositorio de maven, haga clic en este enlace.

    Facebook publica el SDK en maven central:

    Solo agrega :

     repositories { jcenter() // IntelliJ main repo. } dependencies { compile 'com.facebook.android:facebook-android-sdk:+' } 

    La solución de Scott Barta funcionó para mí, excepto que tuve que añadirlas a las dependencias de mi archivo principal build.gradle del proyecto:

     compile files('libs/android-support-v4.jar') compile project(':libraries:facebook') 

    También vale la pena mencionar, es necesario asegurarse de que:

     android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 7 targetSdkVersion 18 } 

    Son los mismos en ambos archivos build.gradle … Una vez que hice esto corrió como un encanto.

    Al usar git puede incorporar el nuevo facebook-android-sdk con facilidad.

    • Añadir facebook-android-sdk como submódulo: git submodule add https://github.com/facebook/facebook-android-sdk.git
    • Añadir sdk como proyecto de gradle: editar settings.gradle y añadir la línea: include ':facebook-android-sdk:facebook'
    • Agregue sdk como dependencia al módulo: edite build.gradle y agregue dentro de dependencies block: compile project(':facebook-android-sdk:facebook')

    Implementé Facebook SDK de Android en el repositorio de Sonatype.

    Puede incluir esta biblioteca como dependencia de Gradle:

     repositories { maven { url 'https://oss.sonatype.org/content/groups/public' } } dependencies { compile 'com.shamanland:facebook-android-sdk:3.15.0-SNAPSHOT' } 

    Mensaje original aquí .

    Muchas respuestas están allí, pero quiero mostrar la forma más fácil de obtener el inicio de sesión de facebook en la aplicación de Android. Estoy usando el siguiente enlace para referencia: facebook login android studio

    build.gradle(Module:app) continuación en el build.gradle(Module:app) :

     repositories { mavenCentral() } 

    y

      compile 'com.facebook.android:facebook-android-sdk:4.10.0' 

    Ahora agrega a continuación en el archivo AndroidManifest.xml:

      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="your app id from facebook developer console"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" /> 

    Agrega el siguiente en el archivo activity_main.xml:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.demonuts.fblogin.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000" android:layout_marginLeft="10dp" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/text"/> <com.facebook.login.widget.LoginButton android:id="@+id/btnfb" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

    Y en el último agregue abajo en el archivo de MainActivity.java:

     import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Base64; import android.util.Log; import android.widget.TextView; import com.facebook.AccessToken; import com.facebook.AccessTokenTracker; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; import com.facebook.GraphRequest; import com.facebook.GraphResponse; import com.facebook.Profile; import com.facebook.ProfileTracker; import com.facebook.login.LoginResult; import com.facebook.login.widget.LoginButton; import org.json.JSONException; import org.json.JSONObject; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class MainActivity extends AppCompatActivity { private TextView tvdetails; private CallbackManager callbackManager; private AccessTokenTracker accessTokenTracker; private ProfileTracker profileTracker; private LoginButton loginButton; private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { GraphRequest request = GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { Log.v("LoginActivity", response.toString()); // Application code try { Log.d("tttttt",object.getString("id")); String birthday=""; if(object.has("birthday")){ birthday = object.getString("birthday"); // 01/31/1980 format } String fnm = object.getString("first_name"); String lnm = object.getString("last_name"); String mail = object.getString("email"); String gender = object.getString("gender"); String fid = object.getString("id"); tvdetails.setText(fnm+" "+lnm+" \n"+mail+" \n"+gender+" \n"+fid+" \n"+birthday); } catch (JSONException e) { e.printStackTrace(); } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id, first_name, last_name, email, gender, birthday, location"); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { } @Override public void onError(FacebookException error) { } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(this); setContentView(R.layout.activity_main); tvdetails = (TextView) findViewById(R.id.text); loginButton = (LoginButton) findViewById(R.id.btnfb); callbackManager = CallbackManager.Factory.create(); accessTokenTracker= new AccessTokenTracker() { @Override protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) { } }; profileTracker = new ProfileTracker() { @Override protected void onCurrentProfileChanged(Profile oldProfile, Profile newProfile) { } }; accessTokenTracker.startTracking(); profileTracker.startTracking(); loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday", "user_friends")); loginButton.registerCallback(callbackManager, callback); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); } @Override public void onStop() { super.onStop(); accessTokenTracker.stopTracking(); profileTracker.stopTracking(); } @Override public void onResume() { super.onResume(); Profile profile = Profile.getCurrentProfile(); } } 

    Las personas que usan Android Studio 0.8.6 podrían hacer esto:

    1. Descargar Facebook-android-sdk-xxx.zip & Descomprimirlo
    2. Copia SOLAMENTE facebook dir bajo el directorio Facebook-android-sdk-xxx en tu proyecto junto con app /

      • ImAnApp /
        • | – app /
        • | – construir /
        • Facebook
    3. Ahora deberías ver Android Studio mostrando facebook como módulo

    4. Modificar el build.gradle de facebook en esto.
      • ('../ libs / bolts.jar') a los provided files('./libs/bolts.jar')
      • CompileSdkVersion Integer.parseInt (project.ANDROID_BUILD_SDK_VERSION) a compileSdkVersion 20 u otra versión que haya definido en la aplicación
      • BuildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION para buildToolsVersion '20.0.0'
      • MinSdkVersion Integer.parseInt (project.ANDROID_BUILD_MIN_SDK_VERSION) a minSdkVersion 14
      • TargetSdkVersion Integer.parseInt (project.ANDROID_BUILD_TARGET_SDK_VERSION) a targetSdkVersion 20

      apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:19.1.+' provided files('./libs/bolts.jar') } android { compileSdkVersion 20 buildToolsVersion '20.0.0' defaultConfig { minSdkVersion 14 targetSdkVersion 20 } lintOptions { abortOnError false } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] res.srcDirs = ['res'] } } } 

    ¡Resincronice su archivo gradle y debería funcionar bien!

    Arreglé el

    "No se pudo encontrar la propiedad 'ANDROID_BUILD_SDK_VERSION' en el proyecto ': facebook'."

    Error en el archivo build.gradle , agregando en gradle.properties los valores:

     ANDROID_BUILD_TARGET_SDK_VERSION=21<br> ANDROID_BUILD_MIN_SDK_VERSION=15<br> ANDROID_BUILD_TOOLS_VERSION=21.1.2<br> ANDROID_BUILD_SDK_VERSION=21<br> 

    Fuente: https://stackoverflow.com/a/21490651/2161698

    Crear archivo build.gradle en el proyecto facebook sdk:

     apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:18.0.+' } android { compileSdkVersion 8 buildToolsVersion "19.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } 

    A continuación, agregue include ':libs:facebook' igual a <project_directory>/libs/facebook (path to library) en settings.gradle .

    * Depósito Gradle para el SDK de Facebook.

     dependencies { compile 'com.facebook.android:facebook-android-sdk:4.4.0' } 

    Buscar la última versión facebook sdk

    Utilizando facebook sdk en android studio es bastante simple, simplemente añada la siguiente línea en su gradle

      compile 'com.facebook.android:facebook-android-sdk:[4,5)' 

    Y asegúrese de que ha actualizado el repositorio de soporte de Android, si no, a continuación, actualizarlo utilizando stand alone sdk pesebre

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.