Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}
Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}
我正在使用 gplus 登录,但在我进入 onActivityResult 时出现此错误....
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
client.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
// Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());
mEmail = acct.getEmail();
String mFullName = acct.getDisplayName();
String mGoogleplusId = acct.getId();
SocialUser user = new SocialUser();
user.setType("googleplus");
user.setEmail(mEmail);
user.setFullname(mFullName);
user.setId(mGoogleplusId + "");
loginParams.put("email_id", mEmail);
loginParams.put("googlePlusId", mGoogleplusId);
loginParams.put("full_name", mFullName);
loginParams.put("registrationType", "googleplus");
SignUpService(user);
} else {
Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
}
}
}
我要求点击按钮时使用 gplus 登录。在点击按钮时执行以下代码....
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, 0);
我正在理解这个错误...
Status{statusCode=DEVELOPER_ERROR, resolution=null}
这条线上....
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
请提出解决方案。
请将正确的 json 文件放入 android 项目的根目录
有关更多信息,请参阅此处:https://coderzpassion.com/android-working-latest-google-plus-login-api/
可能您使用 production 令牌的 SHA1 创建配置文件,使用 androiddebugkey
别名收集与您的应用程序调试版本对应的 SHA1,然后将配置文件复制到 'app' 目录,你应该有两个配置文件(一个用于调试目的,另一个用于生产环境)。
基于 https://developers.google.com/identity/sign-in/android/start
中发布的演练
我遇到了同样的问题,我的解决方法是 gradle 文件中的 applicationId 与清单文件中的包名称不同。我曾经使用 applicationId 创建 json 文件。我必须将我的包名称更改为我的 applicationId 并为我修复它。
我遇到了同样的问题,我通过执行以下步骤使其正常工作:
1.Add DEBUG_KEYSTORE firebase 项目的 SHA1 指纹。使用以下命令(MAC/LINUX)
keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore
2.Now 生成项目的签名 apk。该过程包括为您的应用程序的发布版本生成密钥库。
Copy the path of the newly generated .jks file.
3.Now 使用以下命令生成 RELEASE_KEYSTORE SHA1 指纹
keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME
4.Copy 输出中的新 SHA1 并将其作为另一个 SHA1 指纹添加到您的 firebase 应用程序控制台中。
现在你可以开始了! - - 希望!有帮助。
我在我的 firebase 应用中遇到了这个错误。
当我在下面添加 requestIdToken(activity.getString(R.string.default_web_client_id))
部分时,它已修复。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
.build();
apiClient = new GoogleApiClient.Builder(activity)
.addConnectionCallbacks(this)
.enableAutoManage(activity, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
当我使用新的 google 帐户更新 json 配置文件时出现此错误。
手动卸载应用程序并重新安装应用程序对我有用。
您需要将 SHA1 密钥添加到 Firebase 控制台配置中。
你可以这样做:
Firebase 控制台 ( https://console.firebase.google.com ) -> 你的项目 -> 配置 -> 滚动到
您可以从 Android Studio 找到您的 SHA1 密钥 运行 "Signing report":
然后,查看 "run tab" 并单击按钮:
我认为这是更简单的方法。希望对您有所帮助。
我修复它的方法是选择与突出显示的文本对应的键。由于在 Firebase 的文档页面中 'server' 这个词的用法令人困惑,我选择了 Server key
。这就是问题的原因。
你可以找到钥匙here。
错误是由于调试或发布密钥的 SHA-1 校验和未包含在 firebase/google 控制台中。
首先使用以下命令生成密钥:
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
然后复制 SHA-1 校验和并转到:
Firebase Console > Your project > Settings of the app > Add Fingerprint
除了此处提供的答案之外,您还可以使用 Android Studio 的 Firebase 助手,通过点击一些按钮自动将 SHA-1 添加到您的项目中。
在 Android Studio 中,转到 Tools > Firebase > Select 'Authentication'
并单击显示 'Email and password authentication'
的 link。
这将为您提供一个关于如何将身份验证集成到您的项目中的小教程,但由于您可能已经完成了所有这些,只需单击 'Connect to Firebase'
即可完成。
对于任何发布应用程序的人,您都需要从您的密钥库文件中提取一个特殊的指纹。难怪为什么我只为发布版本收到此错误。 How to obtain Signing certificate fingerprint (SHA1) for OAuth 2.0 on Android?
确保在 Firebase 控制台的“身份验证”下启用 Google 登录。
这是一个老问题,但最近我一直遇到错误 10 (DEVELOPER_ERROR),因为我使用的是 Android 客户端 ID,我在 google 开发人员中创建控制台。
我的解决方案是在 google 开发人员控制台中使用 Android 凭据仅指示我的 apk 的 SHA 密钥并使用 Web 应用程序的客户端 ID (!) 凭据来自我的 cordova 应用程序中的 google 开发人员控制台。
config.xml:
<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
<variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
<variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>
代码:
window.plugins.googleplus.login(
{
'webClientId': '[web-application-client-id].apps.googleusercontent.com'
},
...
我不使用 firebase。
您可能生成并添加了错误的 SHA1 密钥。使用以下步骤在 Android studio 中生成 SHA1 密钥:
- 单击 Gradle(在右侧面板中,您将看到 Gradle 栏)
- 点击刷新(点击刷新自 Gradle 栏,您将看到列出您的项目的 Gradle 脚本)
- 单击您的项目(您的项目名称表单列表(根目录))
- 点击任务
- 点击Android
- 双击 signingReport(您将在 运行 栏中获得 SHA1 和 MD5(有时会在 Gradle 控制台中))
现在将此 SHA1 密钥添加到您的 firebase android 项目中。
对我来说,当我第一次实现它时它是有效的,但在开发几天后停止了,并出现了上述错误消息。
我已经通过以下步骤解决了问题:
- 我在 firebase 控制台中已有的 sha-1 指纹之上添加了 sha-256 指纹。 (不确定是否需要这一步)
- 我已经重新下载了 google-services.json 文件并替换了旧文件。
- 重新安装了应用程序
成功了
我通过在这一行中使用正确的 server_client_id 解决了我的问题:
String serverClientId = getString(R.string.server_client_id);
我用错了代码。
google 登录等某些服务需要将 SHA1 指纹添加到您的 firebase 控制台。
我错过了在 firebase 控制台中添加 SHA 指纹。您可以通过进入 FireBase 控制台 > 项目设置 > 添加指纹选项来完成此操作。
您可以通过一种非常简单的方法生成 SHA1 指纹https://www.youtube.com/watch?v=FczARQ244GE
之后我又犯了一个错误
通过上述方法生成 SHA1 密钥后。我复制了错误的无效 SHA1 密钥,这是一个过期的密钥。因此,请确保您从上述方式输出复制的 SHA1 密钥是有效的(检查 SHA1 密钥的有效直到值)
还要确保您在 firebase 中添加的包名称 (x.y.z) 与您在 android 代码中使用的相同。
还要确保使用正确的 AppID
经过长时间的调查,我找到了解决办法。实际上这个错误 Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}
指向不正确的 SHA-1 或 不正确的包名称 或 其他东西?。就我而言,我将 debug
关键字添加到包名称的末尾 com.sample.app
=> com.sample.app.debug
我在这个问题上遇到了困难,因为我通过更改包名称制作了我的应用程序的副本。
我在 Firebase 为其添加了一个新项目。
我的错误是忘记将服务器的客户端 ID 更改为新 Firebase 项目中的客户端 ID。
more details under authintication with Firebase sectoin here
当您让 Google 管理您的应用程序签名时,您可以在 Google Play 控制台中找到 SHA-1 密钥。
在边栏菜单上查找 'Configuration -> App integrity'。您将在此处找到已签名应用的 SHA-1 密钥。
您还会看到已上传到商店的签名应用的 SHA-1 密钥。
不要忘记添加释放指纹。前面的答案只是添加调试指纹,当您 运行 您的应用程序处于调试模式时,您的问题刚刚解决。如果您发布您的应用程序,您会发现您的问题仍然存在。然后确保你也添加了释放指纹。
如果您运行参与此问题,已发布版本(生产):
转到 Google Play console 并从 Release -> Setup -> App Integrity 复制 SHA-1 密钥
如果您使用从 "Internal App Sharing" 部署的应用程序版本,也可能会发生这种情况
还有一个为您生成的证书,您也需要在 Firebase 或 GCP 上注册它的 SHA-1 指纹
检查以下步骤
- 确保使用正确的 SHA 密钥
- 请求 ID 令牌时使用网络客户端 ID,而不是 android 客户端 ID
我正在使用 gplus 登录,但在我进入 onActivityResult 时出现此错误....
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
client.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
// Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());
mEmail = acct.getEmail();
String mFullName = acct.getDisplayName();
String mGoogleplusId = acct.getId();
SocialUser user = new SocialUser();
user.setType("googleplus");
user.setEmail(mEmail);
user.setFullname(mFullName);
user.setId(mGoogleplusId + "");
loginParams.put("email_id", mEmail);
loginParams.put("googlePlusId", mGoogleplusId);
loginParams.put("full_name", mFullName);
loginParams.put("registrationType", "googleplus");
SignUpService(user);
} else {
Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
}
}
}
我要求点击按钮时使用 gplus 登录。在点击按钮时执行以下代码....
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, 0);
我正在理解这个错误...
Status{statusCode=DEVELOPER_ERROR, resolution=null}
这条线上....
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
请提出解决方案。
请将正确的 json 文件放入 android 项目的根目录
有关更多信息,请参阅此处:https://coderzpassion.com/android-working-latest-google-plus-login-api/
可能您使用 production 令牌的 SHA1 创建配置文件,使用 androiddebugkey
别名收集与您的应用程序调试版本对应的 SHA1,然后将配置文件复制到 'app' 目录,你应该有两个配置文件(一个用于调试目的,另一个用于生产环境)。
基于 https://developers.google.com/identity/sign-in/android/start
中发布的演练我遇到了同样的问题,我的解决方法是 gradle 文件中的 applicationId 与清单文件中的包名称不同。我曾经使用 applicationId 创建 json 文件。我必须将我的包名称更改为我的 applicationId 并为我修复它。
我遇到了同样的问题,我通过执行以下步骤使其正常工作:
1.Add DEBUG_KEYSTORE firebase 项目的 SHA1 指纹。使用以下命令(MAC/LINUX)
keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore
2.Now 生成项目的签名 apk。该过程包括为您的应用程序的发布版本生成密钥库。
Copy the path of the newly generated .jks file.
3.Now 使用以下命令生成 RELEASE_KEYSTORE SHA1 指纹
keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME
4.Copy 输出中的新 SHA1 并将其作为另一个 SHA1 指纹添加到您的 firebase 应用程序控制台中。
现在你可以开始了! - - 希望!有帮助。
我在我的 firebase 应用中遇到了这个错误。
当我在下面添加 requestIdToken(activity.getString(R.string.default_web_client_id))
部分时,它已修复。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
.build();
apiClient = new GoogleApiClient.Builder(activity)
.addConnectionCallbacks(this)
.enableAutoManage(activity, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
当我使用新的 google 帐户更新 json 配置文件时出现此错误。
手动卸载应用程序并重新安装应用程序对我有用。
您需要将 SHA1 密钥添加到 Firebase 控制台配置中。 你可以这样做:
Firebase 控制台 ( https://console.firebase.google.com ) -> 你的项目 -> 配置 -> 滚动到
您可以从 Android Studio 找到您的 SHA1 密钥 运行 "Signing report":
然后,查看 "run tab" 并单击按钮:
我认为这是更简单的方法。希望对您有所帮助。
我修复它的方法是选择与突出显示的文本对应的键。由于在 Firebase 的文档页面中 'server' 这个词的用法令人困惑,我选择了 Server key
。这就是问题的原因。
你可以找到钥匙here。
错误是由于调试或发布密钥的 SHA-1 校验和未包含在 firebase/google 控制台中。
首先使用以下命令生成密钥:
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
然后复制 SHA-1 校验和并转到:
Firebase Console > Your project > Settings of the app > Add Fingerprint
除了此处提供的答案之外,您还可以使用 Android Studio 的 Firebase 助手,通过点击一些按钮自动将 SHA-1 添加到您的项目中。
在 Android Studio 中,转到 Tools > Firebase > Select 'Authentication'
并单击显示 'Email and password authentication'
的 link。
这将为您提供一个关于如何将身份验证集成到您的项目中的小教程,但由于您可能已经完成了所有这些,只需单击 'Connect to Firebase'
即可完成。
对于任何发布应用程序的人,您都需要从您的密钥库文件中提取一个特殊的指纹。难怪为什么我只为发布版本收到此错误。 How to obtain Signing certificate fingerprint (SHA1) for OAuth 2.0 on Android?
确保在 Firebase 控制台的“身份验证”下启用 Google 登录。
这是一个老问题,但最近我一直遇到错误 10 (DEVELOPER_ERROR),因为我使用的是 Android 客户端 ID,我在 google 开发人员中创建控制台。
我的解决方案是在 google 开发人员控制台中使用 Android 凭据仅指示我的 apk 的 SHA 密钥并使用 Web 应用程序的客户端 ID (!) 凭据来自我的 cordova 应用程序中的 google 开发人员控制台。
config.xml:
<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
<variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
<variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>
代码:
window.plugins.googleplus.login(
{
'webClientId': '[web-application-client-id].apps.googleusercontent.com'
},
...
我不使用 firebase。
您可能生成并添加了错误的 SHA1 密钥。使用以下步骤在 Android studio 中生成 SHA1 密钥:
- 单击 Gradle(在右侧面板中,您将看到 Gradle 栏)
- 点击刷新(点击刷新自 Gradle 栏,您将看到列出您的项目的 Gradle 脚本)
- 单击您的项目(您的项目名称表单列表(根目录))
- 点击任务
- 点击Android
- 双击 signingReport(您将在 运行 栏中获得 SHA1 和 MD5(有时会在 Gradle 控制台中))
现在将此 SHA1 密钥添加到您的 firebase android 项目中。
对我来说,当我第一次实现它时它是有效的,但在开发几天后停止了,并出现了上述错误消息。
我已经通过以下步骤解决了问题:
- 我在 firebase 控制台中已有的 sha-1 指纹之上添加了 sha-256 指纹。 (不确定是否需要这一步)
- 我已经重新下载了 google-services.json 文件并替换了旧文件。
- 重新安装了应用程序
成功了
我通过在这一行中使用正确的 server_client_id 解决了我的问题:
String serverClientId = getString(R.string.server_client_id);
我用错了代码。
google 登录等某些服务需要将 SHA1 指纹添加到您的 firebase 控制台。
我错过了在 firebase 控制台中添加 SHA 指纹。您可以通过进入 FireBase 控制台 > 项目设置 > 添加指纹选项来完成此操作。
您可以通过一种非常简单的方法生成 SHA1 指纹https://www.youtube.com/watch?v=FczARQ244GE
之后我又犯了一个错误
通过上述方法生成 SHA1 密钥后。我复制了错误的无效 SHA1 密钥,这是一个过期的密钥。因此,请确保您从上述方式输出复制的 SHA1 密钥是有效的(检查 SHA1 密钥的有效直到值)
还要确保您在 firebase 中添加的包名称 (x.y.z) 与您在 android 代码中使用的相同。
还要确保使用正确的 AppID
经过长时间的调查,我找到了解决办法。实际上这个错误 Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}
指向不正确的 SHA-1 或 不正确的包名称 或 其他东西?。就我而言,我将 debug
关键字添加到包名称的末尾 com.sample.app
=> com.sample.app.debug
我在这个问题上遇到了困难,因为我通过更改包名称制作了我的应用程序的副本。 我在 Firebase 为其添加了一个新项目。 我的错误是忘记将服务器的客户端 ID 更改为新 Firebase 项目中的客户端 ID。
more details under authintication with Firebase sectoin here
当您让 Google 管理您的应用程序签名时,您可以在 Google Play 控制台中找到 SHA-1 密钥。 在边栏菜单上查找 'Configuration -> App integrity'。您将在此处找到已签名应用的 SHA-1 密钥。
您还会看到已上传到商店的签名应用的 SHA-1 密钥。
不要忘记添加释放指纹。前面的答案只是添加调试指纹,当您 运行 您的应用程序处于调试模式时,您的问题刚刚解决。如果您发布您的应用程序,您会发现您的问题仍然存在。然后确保你也添加了释放指纹。
如果您运行参与此问题,已发布版本(生产):
转到 Google Play console 并从 Release -> Setup -> App Integrity 复制 SHA-1 密钥
如果您使用从 "Internal App Sharing" 部署的应用程序版本,也可能会发生这种情况 还有一个为您生成的证书,您也需要在 Firebase 或 GCP 上注册它的 SHA-1 指纹
检查以下步骤
- 确保使用正确的 SHA 密钥
- 请求 ID 令牌时使用网络客户端 ID,而不是 android 客户端 ID