Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Facebook远程应用程序id与存储的id不匹配错误_Android_Facebook - Fatal编程技术网

Android Facebook远程应用程序id与存储的id不匹配错误

Android Facebook远程应用程序id与存储的id不匹配错误,android,facebook,Android,Facebook,在我的应用程序中,用户必须通过facebook登录,但我遇到了这个错误 **my logcat error:** 02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): Exception during service 02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): com.facebook.orca.protocol.base.ApiException: remot

在我的应用程序中,用户必须通过facebook登录,但我遇到了这个错误

**my logcat error:**

02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): Exception during service
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id 
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponseChecker.b(ApiResponseChecker.java:74)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponseChecker.a(ApiResponseChecker.java:103)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponse.g(ApiResponse.java:208)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:267)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:28)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.SingleMethodRunner.a(SingleMethodRunner.java:125)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.handler.PlatformOperationHandler.c(PlatformOperationHandler.java:274)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.handler.PlatformOperationHandler.a(PlatformOperationHandler.java:175)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue.d(OrcaServiceQueue.java:218)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue.d(OrcaServiceQueue.java:38)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue$3.run(OrcaServiceQueue.java:169)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Handler.handleCallback(Handler.java:587)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Looper.loop(Looper.java:123)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.HandlerThread.run(HandlerThread.java:60)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988): Failed to send
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988): com.facebook.orca.ops.ServiceException: API_ERROR: API_ERROR
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation.c(OrcaServiceOperation.java:610)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation.c(OrcaServiceOperation.java:40)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation$2.run(OrcaServiceOperation.java:575)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Handler.handleCallback(Handler.java:587)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Looper.loop(Looper.java:123)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.app.ActivityThread.main(ActivityThread.java:3687)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at java.lang.reflect.Method.invokeNative(Native Method)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at java.lang.reflect.Method.invoke(Method.java:507)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at dalvik.system.NativeStart.main(Native Method)
我正在创建这样的散列键

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\rama\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64
我得到了钥匙,然后添加到facebook设置中

给我点好主意


谢谢。

在应用程序的主要活动的onCreate()中,放入此代码并运行应用程序

这将为您提供Facebook所需的正确密钥哈希。显然,JRE 1.7偶尔也会这样做

复制将显示在logcat跟踪中的结果,并粘贴到应用程序的Facebook控制台中,您就可以开始了

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "ENTER.YOUR.PACKAGE.NAME", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.e("MY KEY HASH:",
                Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {
编辑:差点忘了不要忘记用应用程序的包名替换
输入.YOUR.PACKAGE.NAME
。-)

更新:

解决方案1:

请尝试此链接:。我发现使用Facebook的方法获取散列密钥并不总是像广告宣传的那样有效。然而,这个链接有一种不同的获取散列键的方法,并且几乎总是有效的

解决方案2:

也就是说,我总是发现最简单的事情就是,让Facebook SDK告诉你你的哈希键是什么。这要简单得多,不会超过几分钟

步骤1: 在Facebook SDK中,找到Util.java类。在这种情况下,请更改以下内容:

private static boolean ENABLE_LOG = false;
致:

步骤2: 创建一个新的签名APK,传输到您的设备并安装。如果已经安装,自然会提示


步骤3:在DDMS(Logcat)运行且设备连接到计算机的情况下,运行应用程序并继续查找密钥不匹配警告。该警告具有实际的哈希键。复制该密钥,转到您的Facebook开发者页面,将新密钥添加到列表中。

此密钥已经尝试过。它将给出添加到Facebook设置中的哈希密钥,并得到相同的错误。@Ramachandran:Hmmm。。。理想情况下,它应该已经起作用了。无论如何,请尝试edit.Util.java中的一个替代解决方案该类不在facebook sdk3.0中,我的项目中的另一个第一次启动的活动是splashscreen.java,但是用户登录活动是setting.java,我想将哪个添加到facebook应用程序注册包com.myapp.splashscreen或com.myapp.setting中。@Ramachandran:然后尝试标题“解决方案1”下的方法。我就是这样得到我的。第二个是我后来发现的。第一个很长,但肯定能用。请告诉我这一个我感到困惑,在我的项目中,第一个启动的活动是splashscreen.java,但是用户登录活动是setting.java,我想将哪个添加到facebook应用程序注册包com.myapp.splashscreen或com.myapp.setting中。此异常背后的原因是错误的openssl,请查看我的答案
private static boolean ENABLE_LOG = true;