发布已签名的Android应用程序,谷歌Plus登录和谷歌地图不工作



1.我在我的android应用程序中使用Google plus登录Google地图

2.在将应用程序从Android Studio调试到真实设备(移动设备)时,Google plus登录和Google Map运行良好(一切正常)

问题:

1.构建-->生成签名的APK-从android Studio,我让Release APK无法使用Google plus登录

2.此外,谷歌地图显示空屏幕。

我试图创建OAuth客户端ID,它是来自谷歌开发者控制台的Giving Error消息

错误消息:重复指纹您指定的指纹已被此项目或另一个项目中的Android OAuth2客户端ID使用

链接我参考谷歌加登录

请帮助我任何人如何解决它。

编辑:1

1.我测试了debug.apk它在谷歌加登录和地图上运行得很好。

2.但不适用于版本。apk。请帮助我解决它。

您已经生成了这样的Sign-keyHash。

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%.androiddebug.keystore | openssl sha1 -binary | openssl
base64

例如

C:Program FilesJavajdk1.6.0_22binkeytool.exe" -exportcert -alias selvin -keystore c:usersselvindesktopselvin.kp | C:OpenSSL-Win32binopenssl sha1 -binary | C:OpenSSL-Win32binopenssl base64

这是为您的系统中的CMD生成的。在您的谷歌控制台中添加此哈希密钥。

如果您还没有将版本SHA1添加到firebase控制台或开发人员控制台,请先添加,并确保将从控制台下载的google-services.json添加到项目文件夹的根目录中,如前所述。如果这样做后问题仍然存在,请在项目的proguard-rules.pro中添加以下行。

-keep class <package-name>.** {*;}

注意:此方法可能会增加app-release.apk的大小,但oauth登录肯定会起作用。要缩小大小,请特别注意您在proguard中指定的类。例如,

-keep class <package-name>.<class-name> {*;}

如果您知道proguard压缩了哪个类,从而不执行该类,则可以找到类名。在这种情况下,登录oauth可能被proguard阻止执行。因此,在proguard中添加该类以及与登录相关的任何其他pojo类,如下所示:

-keep class <package-name>.<class-name> {*;}

-keep class <package-name>.<pojo-class> {*;}(如有)

如图所示,添加与登录关联的所有类,就可以开始了。

主要问题是SH1哈希,我很理解面临这个问题的人,因为他们使用Debug SH1 hash代替Release SH1 hash,两者都不同。将Release SH1 Hash添加到OAuth 2.0客户端ID中。希望这会有所帮助。

keytool -exportcert -alias aliasname -keystore PathOfKeystore.jks | "C:UsersAndroidopensslbinopenssl.exe" sha1 -binary | "C:UsersAndroidopensslbinopenssl.exe" base64

相关内容

  • 没有找到相关文章

最新更新