0

我正在尝试为我的 android 应用程序集成 FB 登录,并且已经按照前面问题中的步骤进行操作,所以请不要投反对票或尝试重复,当弹出窗口时,我在对话框中收到错误消息,说应用程序配置错误

我正在通过以下方式生成我的密钥

C:\Program Files\Adobe\Adobe Dreamweaver CS6\JVM\bin>keytool -exportcert -alias
androiddebugkey -keystore "C:\Users\Marc\.android\debug.keystore" | "C:\Users\Ma
rc\openssl\bin\openssl" sha1 -binary | "C:\users\marc\openssl\bin\openssl" base6
4
Enter keystore password:  android
THIS SHOWS A KEY

在我的 facebook 应用程序配置面板中,选项设置如下:

包名:app.android.amazingjobs

类名:app.android.amazingjobs.activity_mainmenu这应该是 .java 类还是 XML 活动名称?

密钥哈希:我的密钥

代码如下:

package app.android.amazingjobs;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;

public class Mainmenu extends Activity {
    private static final String FACEBOOK_APPID = "123456789";
    private static final String FACEBOOK_PERMISSION = "email, publish_stream";
    private final Handler mFacebookHandler = new Handler();
    private TextView loginStatus;
    private FacebookConnector facebookConnector;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainmenu);
        Button Searchbutton = (Button) findViewById(R.id.JobSearchButton);
        Searchbutton.setOnClickListener(StartSearch);
        this.facebookConnector = new FacebookConnector(FACEBOOK_APPID, this, getApplicationContext(), new String[] {FACEBOOK_PERMISSION});

        if (facebookConnector.getFacebook().isSessionValid()) {
        } else {
          facebookConnector.login();
        }

    }

    private OnClickListener StartSearch = new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Mainmenu.this, SearchForJobs.class);
            startActivity(intent);

        }
    };



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_mainmenu, menu);
    return true;
}

}

编辑

我在 eclipse 中的 logcat 在加载 facebook 登录时显示以下消息:

10-28 19:37:27.596: D/ATRecorder(12643): com.htc.autotest.dlib.RecordEngine in loader dalvik.system.DexClassLoader@405279f0
10-28 19:37:27.616: D/WindowManagerImpl(12643): addView, new view, mViews[0]: com.android.internal.policy.impl.PhoneWindow$DecorView@40522bf0
10-28 19:37:31.220: D/ATRecorder(12643): com.htc.autotest.dlib.RecordEngine in loader dalvik.system.DexClassLoader@4053b308
10-28 19:37:31.340: D/Facebook-Util(12643): GET URL: https://graph.facebook.com/414522241948993?format=json&fields=supports_attribution
10-28 19:37:32.381: D/WindowManagerImpl(12643): finishRemoveViewLocked, mViews[0]: com.android.internal.policy.impl.PhoneWindow$DecorView@40522bf0
10-28 19:37:33.082: D/dalvikvm(12643): GC_CONCURRENT freed 250K, 47% free 3036K/5639K, external 0K/0K, paused 6ms+3ms
10-28 19:37:34.483: D/NativeCrypto(12643): returned from sslSelect() with result 1, error code 2
10-28 19:37:34.673: D/Facebook-publish(12643): Unsupported get request.
10-28 19:38:50.817: D/WindowManagerImpl(12643): addView, new view, mViews[0]: com.android.internal.policy.impl.PhoneWindow$DecorView@4052d1d8
10-28 19:38:54.221: W/KeyCharacterMap(12643): Can't open keycharmap file
10-28 19:38:54.221: W/KeyCharacterMap(12643): Error loading keycharmap file '/system/usr/keychars/atmel-touchscreen.kcm.bin'. hw.keyboards.65537.devname='atmel-touchscreen'
10-28 19:38:54.221: I/KeyCharacterMap(12643): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
10-28 19:38:54.571: D/WindowManagerImpl(12643): finishRemoveViewLocked, mViews[0]: com.android.internal.policy.impl.PhoneWindow$DecorView@4052d1d8

更新:

是的,似乎 Jesse 是对的,这是使用错误密钥的情况,即使 keytool 要求我输入密码我仍然使用错误的密码,但不知道为什么我没有收到 logcat 消息,我已经实现来自这里的代码:

http://p-xr.com/implementing-facebook-into-your-app-invalid-key-with-keytool/

这会在 logcat 中输出正确的密钥,以在您的应用配置中使用。

感谢杰西的帮助

4

1 回答 1

0

类名:app.android.amazingjobs.activity_mainmenu 这应该是 .java 类还是 XML 活动名?

它是 .java 类,所以类似于“app.android.amazingjobs.MainActivity”。

此外,其他人似乎无法使用终端命令获取正确的哈希键。我建议尝试这种更友好的方式来获取正确的哈希键。

在此处查看答案:Android:Facebook 登录不起作用

于 2012-10-25T22:11:21.547 回答