我想一个谷歌,加上登录我的应用程序集成按照由下面的链接提供的指令: https://developers.google.com/+/quickstart/android#install-sdk
我完全遵循所有的说明。 当我运行在Android的SDK提供了一个真正的设备上的示例应用程序,然后点击signin
按钮,它显示的是一个祝酒消息An internal error occurred
我究竟做错了什么?
我想一个谷歌,加上登录我的应用程序集成按照由下面的链接提供的指令: https://developers.google.com/+/quickstart/android#install-sdk
我完全遵循所有的说明。 当我运行在Android的SDK提供了一个真正的设备上的示例应用程序,然后点击signin
按钮,它显示的是一个祝酒消息An internal error occurred
我究竟做错了什么?
发生这种情况时,你有没有设置客户端ID签名在你的API控制台项目,或者如果你复制从密钥工具错键的值。 这样做是在步骤记载快速启动指南上的步骤7,8,9,和10。
我有这样的问题,甚至创造不同的10个不同的客户端ID后, SHA
和包名称,它不工作...直到我发现你必须填写的Consent screen
。
据Google代码控制台 -
每当您要求使用您的客户端ID他们的私人数据访问同意画面上会显示给用户。
我已经删除了解决的问题.setScopes("PLUS_LOGIN")
在PlusClient.Builder。
我在我的Android应用此吐司消息错误:
An internal error occurred
摘要:
假设你犯了一个错误配置您的Android应用和Android API服务器允许您访问之间的谈判。 最有可能你不添加正确的软件包名称或正确的SHA1指纹造成的。 我按照这些步骤吹灭了错误的配置和这样做的权利。
步骤来解决:
转到您的谷歌API控制台并登录: https://code.google.com/apis/console
点击“API访问”选项卡。
点击按钮:“创建另一个客户端ID”。
选择:“安装的应用程序”单选按钮。
选择:“Android”的单选按钮。
输入在显示上面的错误了Android应用的应用包名称。 你可以找到它在顶部定义PlusSampleActivity.java
代码文件。 对我来说这是com.google.android.gms.samples.plus
获取您的SHA1指纹值:
一个。 使用命令keytool -list -v -keystore /home/el/.android/debug.keystore
。 输入密码,如果你从来没有设置,默认密码为“机器人”。
湾 SHA1指纹时显示在屏幕上,复制。
上述值粘贴到“签名证书指纹(SHA1):”框中。
点击按钮:“创建客户端ID”。
再次运行Android应用程序,请单击“登录”。
现在,你都带有一个活动到“登录Google+ SDK与谷歌”。
在我的情况下,解决办法是实际上是在同意画面设置一个电子邮件地址。 首先,我是有点舍不得,选择我的个人地址和一个奇怪的原因,你可以保存表单没有这一块的数据没有错误。 检查什么其他人所说,只要我在表单中设置了电子邮件地址后,它开始工作。
我一直在寻找如何解决这一问题与充满不幸运研究一天终于我设法用下面的方法来解决这个问题。
在我开始之前解决这个(TI至少如何为我工作),我必须说,对文档的一切是正确的,你不用更改任何代码或因此任何线路。 它看起来像多的bug https://cloud.google.com/console云控制台
首先确保你得到了正确的SHA1和你的项目的包名称作为文档描述https://developers.google.com/+/quickstart/android
现在这个错误,因为我注意到了(至少对我来说)是,在我的云主机,我已经创建的项目是很久以前的老界面,几个月前,我迁移到新的GUI.Once你上云的新面貌控制台,您会发现,新项目有一个自动生成的项目的id这样的亚特兰蒂斯,ARES-331,而老项目有一个长整型值作为项目id, 这将是不可见的 。 所以,如果你的项目是用旧的GUI创建和刚才创建新的客户端ID为OAuth的该项目你会得到吐司“发生内部错误”,同时试图与谷歌登录。
怎么修
确保不关你的项目有与你现在使用,否则你会得到错误的一个OAuth用户端ID相同的包名称This client ID is globally unique and is already in use
。(你将不得不删除旧的OAuth用户端ID使用相同的包名,你将现在使用)。
转到凭据OAuth的创建新客户端ID。
安装的应用程序
Android的
输入您的项目的包名称和您的SHA1
完成
我的问题是解决以下。
我做的一切都是别人推荐并有关于包名称和SHA1键没有错字。 我也试着删除键,然后再加入它,但它并没有帮助。
什么了帮助拔出钥匙,并创建一个新的项目(在https://code.google.com/apis/console ),然后创建客户端ID(含包装+ SHA1)再次出现。 在那之后(5秒)一切工作,我的Android设备上。
这个问题涉及到从API控制台的权限。
如果您使用的是带有SCOPE_PLUS_LOGIN相关的许可,在API控制台,您必须创建两个键,一个用于OAuth用户端ID和其他公共API密钥。
在我的情况下,问题是,我改变了应用程序的包名称和开发者控制台中没有更新。
对我来说,我试图用我的调试键安装时用我的生产重点。 确保您使用正确的SHA1从右边密钥库。
我转身向谷歌IO 2013,并改变PlusClient的初始化,那么它的工作原理。
public static final String AUTH_SCOPES[] = {
Scopes.PLUS_LOGIN,
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/developerssite" };
mPlusClient = new PlusClient.Builder(this, this, this)
.setScopes(AUTH_SCOPES)
.build();
感谢Thano为解决“现在我注意到了(至少对我来说)是,在我的云主机,我已经创建的项目是很久以前的老界面,这个错误几个月前,我迁移到新的GUI.Once你让云控制台,您会发现,新项目有一个自动生成的项目的id这样的亚特兰蒂斯,ARES-331,而老项目有一个长整型值作为项目id,这将是不可见的新的面貌。所以,如果你的项目是用创建老GUI和刚才创建新的客户端ID为OAuth的该项目你会得到吐司“发生内部错误”,同时试图与谷歌签署的“。
重塑在谷歌控制台项目工作对我来说其他经过几次尝试:
对于任何原因,我的项目没有一个项目ID(旧控制台/新增控制台?)。
作为Thano(以上)的建议,我创建了一个全新的项目,创建客户ID,...,然后在工作。 感谢您的建议!!
请记住,使用内置的调试密钥库进行测试。 我有一切工作正常,但我已经把我的生产密钥库SHA1指纹在开发者控制台的凭据,造成它不工作。
如果你面临这样的错误,当您尝试运行示例应用程序“或”复制您已参加了在成功地运行,并且在您尝试运行其他机器发出该弹出错误等机创建的项目,你可以按照下面的方法,这将有助于。
如果您正在为测试/调试目的的应用程序,然后,
1.Generate新的SHA1,如果你复制你的项目和其他机器上运行它提供的密钥库包的名称和路径。
2.Change在开发者控制台中的客户端Id为新产生的SHA1和在新机已复制该项目,并试图运行它运行它。
一些经常被忽略的是软件包的名称。 我想用埃里克Leschinski澄清第6步以上(无法评论那里):所需的软件包不是活动的包,而包你的应用程序的清单中。
你可以检索从AndroidManifest.xml中的根元素的正确值:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ntk.darkmoor"
android:versionCode="1"
android:versionName="1.0" >
在这个例子中定义“com.ntk.darkmoor”在创建客户机ID
我有同样的问题,当我使用SHA1的debug.keystore的调试运行,然后导出我的应用程序忘记生成密钥库,我用来导出我的应用SHA1。
它的工作对我来说,当我连接设备并安装Android Studio中的APK。 但它现在工作对我来说,当我生成.apk文件,并从Dropbox的安装。
我经过这里提供的所有答案,其他人也去了。 在我的情况的问题是SHA-1为好。 我得到的原因不正确的SHA-1是我的keytool出口cert命令。
以前我是用
C:\Users\mysuername\.android SHA 1 signature keytool -exportcert -alias androiddebugkey -keystore "keystorepath" -list -v
问题是在androiddebugkey变量。 在这里,你必须给你使用签署应用程序键的名称。
C:\Users\mysuername\.android SHA 1 signature keytool -exportcert -alias mykeyname -keystore "keystorepath" -list -v
希望这可以帮助别人!
为了增加这漫长的原因我的问题是,我从JKS文件,而不是应用程序的debugkey列表。
它总是小东西。