发布已签名的Android应用,Google Plus登录和Google地图无效

时间:2015-11-20 07:26:59

标签: android google-maps google-api google-plus google-play-services

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

2.在调试应用程序从Android Studio到Real设备(移动)时Google加登录和Google Map 工作正常。(一切正常)

问题:

1.Build - >生成签名APK - 来自android Studio,我发布了apk无法使用 Google plus 登录。

2. 谷歌地图显示空白屏幕。

我尝试创建 OAuth客户端ID ,来自Google Developer Console的Giving Error消息

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

Link i reffered for Google plus Login

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

编辑:1

1.我测试了 debug.apk ,它完美地运行了Google plus登录和地图。

2.但没有在 release.apk 中工作。帮我解决一下。

4 个答案:

答案 0 :(得分:7)

你已经生成了像这样的Sign keyHash。

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

例如,像这样

C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe" -exportcert -alias selvin -keystore c:\users\selvin\desktop\selvin.kp | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64

这是为您的系统中的CMD生成添加在您的Google consol中添加此哈希密钥。

答案 1 :(得分:3)

如果您尚未将版本SHA1添加到Firebase控制台或开发者控制台,请首先执行此操作,并确保将从控制台下载的google-services.json添加到项目文件夹的根目录中,如先前的答案。如果执行此操作后问题仍然存在,请在您的项目的proguard-rules.pro中添加以下行。

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

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

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

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

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

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

添加与登录名关联的所有类,如图所示,您会很方便。

答案 2 :(得分:0)

主要问题是SH1哈希,我理解人们面临这个问题,因为他们在 Debug SH1 Hash >发布SH1哈希 ,两者都不同。在 OAuth 2.0客户端ID 中添加 发布SH1哈希 。希望它会有所帮助。

答案 3 :(得分:0)

keytool -exportcert -alias aliasname -keystore PathOfKeystore.jks | "C:\Users\Android\openssl\bin\openssl.exe" sha1 -binary | "C:\Users\Android\openssl\bin\openssl.exe" base64