2012-11-21 120 views
1

我無法使用模擬器和手機登錄Facebook。 手機確實給了我Facebook的登錄屏幕,但在我衝入我的用戶名和密碼後,按鈕圖像不會改變+我收到錯誤消息「無法找到com.facebook.katana.provider.AttributionIdProvider的提供者信息」。 嘗試從手機登錄時,FB登錄頁面打開約2秒鐘,然後立即關閉回我的佈局。無法使用模擬器和手機登錄Facebook

怎麼了?

package com.test.facebookapp; 

import java.io.IOException; 
import java.net.MalformedURLException; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 
import android.widget.Toast; 

import com.facebook.android.DialogError; 
import com.facebook.android.Facebook; 
import com.facebook.android.Facebook.DialogListener; 
import com.facebook.android.FacebookError; 

public class StartingPlace extends Activity implements OnClickListener{ 

    Facebook fb; 
    ImageView pic,button; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String APP_ID = getString(R.string.APP_ID); 
     button = (ImageView)findViewById(R.id.login); 
     pic = (ImageView)findViewById(R.id.picture_pic); 
     button.setOnClickListener(this); 
     fb = new Facebook(APP_ID); 
     updateButtonImage(); 

    } 
    private void updateButtonImage() { 
     // TODO Auto-generated method stub 
     if (fb.isSessionValid()){ 
      button.setImageResource(R.drawable.logout_button); 
     } 
     else{ 
      button.setImageResource(R.drawable.login_button); 
     } 
    } 
    @Override 
    public void onClick(View v) { 
     if (fb.isSessionValid()){ 
      //button will close session - logout 
      try { 
       fb.logout(getApplicationContext()); 
      } catch (MalformedURLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      updateButtonImage(); 
     } 
     else{ 
      //login to facebook 
      fb.authorize(StartingPlace.this, new DialogListener() { 

       @Override 
       public void onFacebookError(FacebookError e) { 
        // TODO Auto-generated method stub 
        Toast.makeText(StartingPlace.this, "fbError", Toast.LENGTH_SHORT).show(); 
       } 

       @Override 
       public void onError(DialogError e) { 
        // TODO Auto-generated method stub 
        Toast.makeText(StartingPlace.this, "DialogError", Toast.LENGTH_SHORT).show(); 

       } 

       @Override 
       public void onComplete(Bundle values) { 
        // TODO Auto-generated method stub 
        updateButtonImage(); 
       } 

       @Override 
       public void onCancel() { 
        // TODO Auto-generated method stub 
        Toast.makeText(StartingPlace.this, "onCancel", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

     } 
     // TODO Auto-generated method stub 

    } 




} 




<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.test.facebookapp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.test.facebookapp.StartingPlace" 
      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"></activity> 
    </application> 

</manifest> 

謝謝!

+0

你能指定logcat錯誤嗎? – kamil

+0

無法找到com.facebook.katana.provider.AttributionIdProvider的提供者信息 我在模擬器上得到了。電話沒什麼。 – JustAGuy

+0

請檢查相關鏈接(http://stackoverflow.com/questions/12939979/cant-login-facebook-in-android-failed-to-find-provider-info-for-com-facebook-ka) – kamil

回答

2

您必須導出已簽名的apk並將其安裝到手機。

FB DOS不調試,除非你使用調試FB重點

+0

這是否意味着無法測試我的應用程序? – JustAGuy

+0

你可以。 http://stackoverflow.com/questions/5170544/android-facebook-single-sign-on-multiple-key-hashes-possible和https://developers.facebook.com/docs/mobile/android/build/#sig – JafarKhQ

0

好工作,原來的東西攪亂了我的Facebook設置。 我刪除了我的應用程序,並且更加小心地重新創建了應用程序,並且現在應該可以登錄和註銷。 :) 謝謝你們一堆,但。這些提示應該派上用場。