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