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 中工作。帮我解决一下。
答案 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