Ответ @NullPointer является функционально правильным и действительно решает мою проблему. Но чтобы дать более прямой ответ на мой собственный вопрос, основная причина проблемы связана с существенно различными процедурами настройки API-интерфейсов Google для локальной отладочной версии приложения Android и версии выпуска того же приложения.
Часть путаницы здесь связана с самой консолью Google, которая говорит:
Затем используйте следующую команду для получения отпечатка пальца (SHA-1):
keytool -list -v -keystore mystore.keystore
При локальном создании и тестировании приложения в режиме отладки, фактически запуск keytool
для файла хранилища ключей отладки и вставка хеша SHA-1 в консоль Google заставит API работать. Посидев на базе кода в течение нескольких месяцев или дольше, и API-интерфейсы выглядят очень стабильными, становится неожиданностью, что произойдет после повторения этих шагов с выпуском APK.
Это сюрприз, потому что выполнение тех же шагов не будет работать для релизного приложения. Это связано с тем, что Google Play Store фактически передает ваш APK другим ключом, который поэтому имеет другой хэш SHA-1. Чтобы найти хеш SHA-1, который нужно использовать, можно зайти на Release management -> App signing
в консоли Google Play. Сделайте это после публикации приложения и подождите 10-15 минут, чтобы оно обновилось. Затем просто вставьте этот SHA-1 обратно в консоль Google API, и все готово.
Кстати, мой вопрос очень похож на Опубликованное приложение в Play Store не может взаимодействовать с API Карт Google и Facebook API , хотя там не уделялось особого внимания тому, почему API Google может быть работает в режиме отладки, но не в магазине Play. Кстати, я благодарен @RohitChauhan, который вставил комментарий, содержащий ссылку на этот вопрос.