gpt4 book ai didi

android - GooglePlayServicesUtil.getErrorDialog 为空

转载 作者:IT老高 更新时间:2023-10-28 21:34:33 24 4
gpt4 key购买 nike

我正在使用 ACRA (arca.ch) 生成自动错误报告。

我刚刚使用 Google Maps Android API v2 发布了我的应用程序的新版本。我在尝试显示 GooglePlayServicesUtil.getErrorDialog 返回的对话框时收到 EEEPad 和 Transformer Pad 用户报告的错误。有谁知道为什么会发生这种情况?

这是acra报告的相关代码和Logcat:

调用此行时:

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(resultCode != ConnectionResult.SUCCESS)
{
//The dialog that comes back is null (probably due to the logcat message)
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
//So when I call the next line, the app crashes with a NullPointerException
dialog.show();
}
...

Logcat:

12-18 04:21:04.531 W/GooglePlayServicesUtil( 3977): Google Play Store signature invalid.
12-18 04:21:04.551 E/GooglePlayServicesUtil( 3977): Google Play services is invalid. Cannot recover.

提前感谢您提供的任何帮助。

更新

谷歌尚未解决此问题,我将在听到任何消息后更新此问题(请参阅 CommonsWare 对 Google 错误报告链接的回答)。同时,如果您遇到此问题并且不希望您的应用崩溃,我目前正在做的是:

public void checkGooglePlayServicesAvailability()
{
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(resultCode != ConnectionResult.SUCCESS)
{
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
if(dialog != null)
{
dialog.show();
}
else
{
showOkDialogWithText(this, "Something went wrong. Please make sure that you have the Play Store installed and that you are connected to the internet. Contact developer with details if this persists.");
}
}

Log.d("GooglePlayServicesUtil Check", "Result is: " + resultCode);
}

public static void showOkDialogWithText(Context context, String messageText)
{
Builder builder = new AlertDialog.Builder(context);
builder.setMessage(messageText);
builder.setCancelable(true);
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.create();
dialog.show();
}

最佳答案

谷歌 suggests (也在 docs 中)如果结果代码是 SERVICE_MISSINGSERVICE_VERSION_UPDATE_REQUIREDSERVICE_DISABLED,则调用 getErrorDialog()。所以可能是最后一个可能的状态代码 (SERVICE_INVALID) 是造成问题的原因。

我正在使用以下代码,到目前为止它似乎工作正常(在模拟器中测试,平台 2.3.3):

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(activity.getApplicationContext());
if (resultCode == ConnectionResult.SUCCESS) {
activity.selectMap();
} else if (resultCode == ConnectionResult.SERVICE_MISSING ||
resultCode == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED ||
resultCode == ConnectionResult.SERVICE_DISABLED) {
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, activity, 1);
dialog.show();
}

关于android - GooglePlayServicesUtil.getErrorDialog 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com