2015-03-28 24 views
8

Ben bir dilenciyim ve Facebook Entegrasyonu ile bir uygulama oluşturmaya çalışıyorum.Android Studio Facebook ithalatlarını tanımıyor

Tüm adımları tamamladım (Modül Yapısında Facebook SDK'sini İçe Aktarım, eksik dosyalarda eksik dosyalar ekleyerek, Uygulamamdaki uygulama projem için bağımlılık modülünü tekrar ekleyerek). Her şey iyi görünüyordu, main_activity.xml dosyasında basit bir LoginButton ekledim ve hiçbir hata gösterilmedi.

MainActivity.java'da gerekli olan tüm facebook ithalatlarını yapmaya çalıştığım için hepsi kırmızıya döndü. Bunlar:

import com.facebook.Session; 
    import com.facebook.SessionState; 
    import com.facebook.UiLifecycleHelper; 
    import com.facebook.widget.LoginButton; 
    import com.facebook.widget.LoginButton.UserInfoChangedCallback; 

ve "simge oturumu çözülemez" gibi iletilerdir. Yapabildiğim kadar çok araştırdım, benim için çalışan bir çözüm bulamadım.

İşte
import com.facebook.login.widget.LoginButton; 

benim Android Manifest Dosyası XML'dir: Karşıt ucunda , bu bir sorun değildi burada

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.user.moviere" > 

    <uses-permission android:name="android.permission.INTERNET"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name="com.facebook.LoginActivity" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar" 
      android:label="@string/app_name" /> 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> 

     <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" /> 
    </application> 

</manifest> 

Ve build.gradle olduğunu

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion '21.1.2' 

    defaultConfig { 
     applicationId "com.user.moviere" 
     minSdkVersion 9 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
repositories { 
    mavenCentral() 
} 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    // compile project(':facebook') 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.0.0' 
    compile 'com.android.support:support-v4:22.0.0' 
    } 
+0

"--info" kullanarak (AS dışında) komut satırında bir yapı deneyin geçiş ..../gradlew clean assemble _______ ve FB ithalatıyla ilgili olarak ne aldığınızı görün. veya Sürüm üzerinde SDK bağımlılığı –

+0

derleme FB sürümünü deneyin: Uygulama: processDebugResources başarısız oldu : app: processDebugResources (iş parçacığı [ana, 5, ana]) tamamlandı. 1 tane aldım.79 saniye HATASI: Yapı bir istisna ile başarısız oldu. * Neler ters gitti: Yürütme ': app: processDebugResources' görevinde başarısız oldu. > Hata: paket adı 'com.facebook' birden fazla kütüphane geçici olarak android.enforceUniquePackageName ile bu hatayı devre dışı bırakabilir = false Ancak bu geçicidir ve 1.0 YAPI yılında yürürlüğe Toplam süre BAŞARISIZ edilecektir: 38.199 sn. – linous

+0

tamam .. bütün kavanozları arayın ./lib, ./libraries .... FB bağımlılığı için dupe'yi bulun. projede dosya sisteminize bakın. ben her neyse –

cevap

7

Tamam, projeyi en baştan oluşturdum, FB SDK'yı tekrar içe aktardım. Ancak, ithalatla ilgili asıl sorun, Facebook SDK 4'ün bazı işlevlerini değiştirmesiydi, bunlardan biri de UiLifecycleHelper, artık var değil. Tüm değişiklikler hakkında

tüm detaylar burada:

onlar Oturum, şimdi AccessToken, LoginManager ve CallbackManager sınıfları supercede ve Oturumda işlevselliği yerine kaldırdık facebook sdk mevcut güncellemede

https://developers.facebook.com/docs/android/upgrading-4.x

+1

çok yeni. Ama bu sınıfları (Session, SessionState) resmi belgelerinde kullanmaya devam ediyorlar, bu yüzden bu soru üzerine tökezlemeden önce 2 saatimi bulamıyorum. –

1

Güncelleme Facebook Bağımlılık

derleme 'com.facebook.android:facebook-android-sdk:4.8.0'

İhtiyacı İzni - Daha fazla ayrıntı için

gitmek Manifest'te Dosya

<uses-permission android:name="android.permission.INTERNET"/> 

<meta-data 
     android:name="com.facebook.sdk.ApplicationName" 
     android:value="@string/app_name" /> 
    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/facebook_app_id" /> 

    <provider 
     android:name="com.facebook.FacebookContentProvider" 
     android:authorities="com.facebook.app.FacebookContentProvider1854328631556764" 
     android:exported="true" /> 

Onun Çalışma

Detaylar: -

https://developers.facebook.com/docs/android/upgrading-4.x