Intereting Posts
RxJava: ошибка при попытке распространения ошибки на Observer.onError Android – получить видимую область просмотра? Установить источник ImageView динамически андроида Android: ограничение EditText на номера Как реализовать Swipe в Android-игре без просмотра Gradle не удалось синхронизировать с «неспособным найти дополнительную библиотеку», Какая часть стека программного обеспечения Android обрабатывает команды через разъем для наушников? (Например, отвечать на вызовы с гарнитурой) Мгновенный обмен сообщениями на Android с Google Cloud Messaging Как отображать подсказку в android? Как добавить страницу в начало ViewPager? Отсутствует AndroidManifest.xml при импорте старого проекта Android в Eclipse Детектор и счетчик шагов Android 4.4 Android-устройство GPS вкл. / Выкл. Программно Как встраивать объекты при построении JSON с помощью JSONObject Разработка Android на Eclipse: всегда открывает новый эмулятор

Android Facebook SDK: Key hash не соответствует сохраненным хэшам при загрузке google play

Мое приложение использует facebook api для входа пользователя в систему. При разработке он отлично работает, но когда я загрузил его в Google Play, он перестает работать.

Это журнал ошибок:

12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): Exception during service 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): com.facebook.http.protocol.ApiException: Key hash XXXXXXX does not match any stored key hashes. 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:83) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:162) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponse.g(ApiResponse.java:239) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:272) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:29) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseHandler.a(ApiResponseHandler.java:56) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseHandler.handleResponse(ApiResponseHandler.java:29) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:280) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:141) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.b(FbHttpRequestProcessor.java:103) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:196) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:374) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.SingleMethodRunnerImpl.a(SingleMethodRunnerImpl.java:151) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.AbstractSingleMethodRunner.a(AbstractSingleMethodRunner.java:18) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.handler.PlatformOperationHandler.c(PlatformOperationHandler.java:367) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.handler.PlatformOperationHandler.a(PlatformOperationHandler.java:260) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.fbservice.service.BlueServiceQueue.e(BlueServiceQueue.java:299) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.fbservice.service.BlueServiceQueue.d(BlueServiceQueue.java:53) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.fbservice.service.BlueServiceQueue$3.run(BlueServiceQueue.java:230) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.common.executors.ListenableScheduledFutureImpl.run(ListenableScheduledFutureImpl.java:59) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at android.os.Handler.handleCallback(Handler.java:733) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at android.os.Handler.dispatchMessage(Handler.java:95) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at android.os.Looper.loop(Looper.java:137) 12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at android.os.HandlerThread.run(HandlerThread.java:61) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): Failed to send 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): com.facebook.fbservice.service.ServiceException: API_ERROR: API_ERROR 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at com.facebook.fbservice.ops.BlueServiceOperation.c(BlueServiceOperation.java:640) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at com.facebook.fbservice.ops.BlueServiceOperation.c(BlueServiceOperation.java:48) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at com.facebook.fbservice.ops.BlueServiceOperation$2.run(BlueServiceOperation.java:605) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at android.os.Handler.handleCallback(Handler.java:733) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at android.os.Handler.dispatchMessage(Handler.java:95) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at android.os.Looper.loop(Looper.java:137) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at android.app.ActivityThread.main(ActivityThread.java:4998) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at java.lang.reflect.Method.invokeNative(Native Method) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at java.lang.reflect.Method.invoke(Method.java:515) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 12-10 20:20:02.498: W/fb4a(:<default>):GDPDialog(17284): at dalvik.system.NativeStart.main(Native Method) 

Может быть, ключевой хеш каким-то образом изменился?

Solutions Collecting From Web of "Android Facebook SDK: Key hash не соответствует сохраненным хэшам при загрузке google play"

Вы выполнили шаги, которые facebook предусматривает создание приложения для входа в систему?

Вам понадобится «Production keyhash», который начинается с вашего хранилища ключей выпуска:

Из командной строки:

 keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 

И добавьте этот ключ в параметры страницы на facebook.

Дополнительная информация: документы в Facebook

Я провел целый день, пытаясь понять, почему это не работает …

При создании хэш-ключа для производства вам нужно использовать openssl-0.9.8e_X64.zip для Windows, вы не можете использовать openssl-0.9.8k_X64.zip

В версиях производятся разные хеш-ключи, по какой-то причине 9.8k работает неправильно … 9.8e

Справка

Это давало мне неправильный ключ.

 keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 

Обходной путь, который работал для меня, заключался в следующем: 1. Поместите этот код в свою стартовую деятельность

 private void printKeyHash(){ // Add code to print out the key hash try { PackageInfo info = getPackageManager().getPackageInfo( "YOUR_PACKAGE_NAME", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) { Log.d("KeyHash:", e.toString()); } catch (NoSuchAlgorithmException e) { Log.d("KeyHash:", e.toString()); } } 
  1. Экспортируйте приложение для публикации в магазине воспроизведения с помощью .keyStore
  2. Установите приложение перед загрузкой в ​​магазин и запустите его и обратите внимание на распечатку keyHash.
  3. Добавьте keyHash в приложение Facebook.

Надеюсь, это поможет кому-то.

Вы также можете просто взять отсутствующий хэш из трассировки стека ApiException: Key hash XXXXXXX does not match any stored key hashes . Там у вас это уже есть, только в конце отсутствует. Итак, возьмите XXXXXXX =.

Это отлично работает для меня

 keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 

Где <RELEASE_KEY_ALIAS> – ваше имя псевдонима при создании подписанного приложения.

Введите описание изображения здесь

И <RELEASE_KEY_PATH> – это местоположение на картинке внизу. Затем введите пароль, чтобы создать пароль в <RELEASE_KEY_PATH> изображении вместо андроида.

Введите описание изображения здесь

Выше решения верны для точки. Но если кто-то все еще сталкивается с проблемой. Удалите ключ из профиля разработчика и добавьте его снова, написав = в конце, и нажмите enter. Вы должны добавить ключ как в настройки, так и в разработчик.

Я столкнулся с проблемами с выпуском приложения для игры в Google и с использованием ключа release

Проверьте. 9 о включении единого входа для вашего приложения

Включить Single Sign On Включите одиночный вход для вашего приложения, установив Single Sign On на Yes ниже. Да Нет Единый вход