我正在使用新的Facebook-sdk并使用 hackbook 示例来获取使用文件的朋友列表FriendsList.java。每次都会Friendlist Activity被杀死,我在 logcat 中收到此错误:
11-18 16:20:51.141: ERROR/JavaBinder(7881): !!! FAILED BINDER TRANSACTION !!!.
该问题每次都会重现。请注意,个人资料中的好友数量为 4500。
11-18 16:19:27.932: DEBUG/Facebook-Util(7881): GET URL: https://api.facebook.com/restserver.php?access_token=**********&query=select+name%2C+current_location%2C+uid%2C+pic_square+from+user+where+uid+in+%28select+uid2+from+friend+where+uid1%3Dme%28%29%29+order+by+name&method=fql.query&format=json
11-18 16:20:50.982: WARN/InputManagerService(3426): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4665a200
11-18 16:20:51.141: ERROR/JavaBinder(7881): !!! FAILED BINDER TRANSACTION !!!
请帮忙!
我目前正在开发一个旨在通过Facebook帐户验证任何用户的应用程序.
我无法从用户的帐户获取用户电子邮件.我的代码如下
    private void signInWithFacebook() {
    SessionTracker mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() {
        public void call(Session session, SessionState state, Exception exception) {
        }
    }, null, false);
    String applicationId = Utility.getMetadataApplicationId(getBaseContext());
    Session mCurrentSession = mSessionTracker.getSession();
    if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
        mSessionTracker.setSession(null);
        Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
        Session.setActiveSession(session);
        mCurrentSession = session;
    }
    if (!mCurrentSession.isOpened()) {
        Session.OpenRequest openRequest = null;
        openRequest = new Session.OpenRequest(FacebookLoginActivity.this);
        if (openRequest != null) {
            openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
            openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location"));
            openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
            mCurrentSession.openForRead(openRequest);
        }
    }else {
        Request.executeMeRequestAsync(mCurrentSession, new …嘿,有人能指出我在Android的Facebook教程的正确方向吗?他们的开发者网站的教程并不是那么好.
这是我到目前为止所提出的:
public static final int FBResultCode = 100;
private static Session.StatusCallback sharedFBStatusCallback = new Session.StatusCallback()
{
    @Override
    public void call(Session session, SessionState state, Exception exception)
    {
        if(exception != null)
            Log.e("fb error", exception.toString());
        switch(state)
        {
        case OPENED:
                            //login successful
            break;
        case CLOSED:
        case CLOSED_LOGIN_FAILED:
            closeFBSession();
            break;
        default:
            break;
        }
    }
};
public static void openFBSessionWithLoginUI(boolean loginUI)
{
    Session session = Session.getActiveSession();
    if (session != null && 
            !session.isOpened() && 
            !session.isClosed()) 
    {
        ArrayList<String> perms = new ArrayList<String>();
        perms.add("user_likes");
        perms.add("user_birthday");
        perms.add("read_friendlists");
        Session.OpenRequest openRequest …我有一个SettingsActivity地方有几个选项,包括寻找Facebook好友和退出.因此,当用户选择找到她的Facebook好友时,她将被发送到另一个活动,我让她使用她的Facebook帐户登录并保存她的访问令牌.然后,当她选择退出时,她的访问令牌将被清除.问题是,我的logout方法与我创建会话的方法没有写在同一个活动中,所以当我尝试这个时:
    Session session = Session.getActiveSession();
    if (!session.isClosed()) {
        session.closeAndClearTokenInformation();
    }
Logcat积分NullPointerException.然后我尝试了:
Session.setActiveSession(null);
这也不起作用(之前登录的用户的朋友仍然显示,而不是要求新用户登录).
那么我该怎么做才能清除获得的令牌呢?先感谢您.
-编辑-
我认为我用来打开会话的活动有问题.我关注了Facebook的GraphAPISample,这就是我所做的:
public class FacebookFriendsActivity extends FragmentActivity{
    private BroadcastReceiver broadcast;
    public static Session session;
    private boolean pendingRequest;
    static final String PENDING_REQUEST_BUNDLE_KEY = "PendingRequest";
    private DatabaseHandler db;
    private FindFacebookFriends task;
    private ProgressBar progress;
    private TextView text;
    private Button retryBtn;
    private ListView userLayout;
    private ArrayList<User> userList;
    private FollowAdapter adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.facebook_friends);
        // ... set …我正在使用Facebook SDK for Android,以允许用户注册和使用应用程序.我想获得一些关于用户的基本信息,如用户名和电子邮件.无论如何,我有问题因为我在尝试获取用户电子邮件时遇到空指针异常.
String email = user.getProperty("email").toString();
我假设我收到此错误,因为我没有请求电子邮件权限.我怎么能这样做?
这是完整的代码:
public class RegisterActivity extends ActionBarActivity{
Button btnFacebook;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);
    getSupportActionBar().hide();
    btnFacebook = (Button) findViewById(R.id.btn_facebook);
    btnFacebook.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Log.d("FACEBOOK", "Prije sesije");
            // start Facebook Login
                        Session.openActiveSession(RegisterActivity.this, true, new Session.StatusCallback() {
                            // callback when session changes state
                            @SuppressWarnings("deprecation")
                            @Override
                            public void call(Session session, SessionState state,
                                    Exception exception) {
                                Log.d("FACEBOOK", "U call");
                                if(session.isOpened()){                     
                                    Log.d("FACEBOOK", "ako je sesija otvorena");
                                    // …email android facebook facebook-android-sdk facebook-sdk-3.0
我想用这个简单的应用程序显示我的Facebook名称,该应用程序在点击按钮后登录login().
会话正确打开,但Request.GraphUserCallback不起作用似乎返回null.
当我启动我的应用程序时,LogCat不会显示任何错误,但是user.name()当Graph API返回用户时,我无法在onCompleted上看到我的Toast.
这是我没有导入和没有布局的代码:
public class MainActivity extends Activity {
private Session.StatusCallback statusCallback;
private Request.GraphUserCallback requestGraphUserCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(getApplicationContext(), "Ci siamo", Toast.LENGTH_SHORT).show();       
    statusCallback= new SessionStatusCallback();
    requestGraphUserCallback = new RequestGraphUserCallback();    
}
public void login(View view){
    Toast.makeText(getApplicationContext(), "Login", Toast.LENGTH_SHORT).show();
    // start Facebook Login
    Session.openActiveSession(this, true, statusCallback);
     Toast.makeText(getApplicationContext(), "finito login", Toast.LENGTH_SHORT).show();
}
//CLASSE SESSIONE
private class SessionStatusCallback implements Session.StatusCallback {
    @Override
    public void call(Session session, SessionState state, Exception exception) {
         if (session.isOpened()) …我正在使用compile 'com.facebook.android:facebook-android-sdk:4.7.0'
和:
<com.facebook.login.widget.LoginButton
      android:id="@+id/tutorial_button_login"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="16dp"
      />
有没有办法让它看起来物化或更酷?
我的项目有些错误.我是Android初学者.当我尝试编译我的应用程序时,我收到以下错误
错误:任务':app:transformClassesWithDexForDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files\Java\jdk1.8.0_25\bin\java.exe''以非零退出值2结束
我正在使用Parse SDK登录Facebook,但在这一刻,我只在我的应用程序中使用此代码:
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // [Optional] Power your app with Local Datastore. For more info, go to
    // https://parse.com/docs/android/guide#local-datastore
    Parse.enableLocalDatastore(this);
    Parse.initialize(this);
我的build.gradle是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
    applicationId "com.example.daniele.myapplication"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}  
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.parse:parse-android:1.+' …java parsing android facebook-android-sdk android-gradle-plugin
在Android Studio中,使用facebook SDKGraphRequest和令牌,我可以获得除性别之外的帐户信息。
这是我尝试过的脚本:
GraphRequest request = GraphRequest.newMeRequest(token, (object, response) -> {
    Log.e("fbLoginActivity", object.toString());
    String fbId;
    String fbEmail;
    String fbFirst_name;
    String fbLast_name;
    String fbBirthday;
    String fbGender;
    String fbPhoto;
    try {
        String fbId = object.getString("id");
        String fbEmail = object.getString("email");
        String fbFirst_name = object.getString("first_name");
        String fbLast_name = object.getString("last_name");
        String fbBirthday = object.getString("birthday");
        String fbGender = object.getString("gender"); // <-- ERROR, but when I comment this line, it works (without gender data)
        String fbPhoto = "http://graph.facebook.com/" + fbId + "/picture?type=large";
    } catch …android facebook-android-sdk facebook-login firebase facebook-sdk-4.0
当我使用 5.9.0 或最新的 Facebook Android SDK 编译 .AAB 并尝试将其上传到 Google Play Console 时,会发生错误。
您的应用程序包针对以下无法识别的语言:fb。支持的语言代码列表可以在 IANA 注册表中找到。可以使用 resConfigs Gradle 属性排除由第三方库导致的无效语言。
我认为这是因为一个名为“values-fb”的文件夹,该文件夹包含一些文件,通常用于翻译。但是,这个“fb”不是 IANA.org 允许的语言。 https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
有什么办法解决吗?