0

我知道这看起来像是(Google Awareness API SecurityException is throwed)的重复,它可能是,但由于我的 stackoverflow mojo 不够好,我无法投票或添加评论,这绝对不是答案。所以我提前为重复道歉。

在上面的案例中,我看到大约 10% 的感知 api 调用(120K 成功 + 1.2K 失败)收到带有 -1 响应代码的 SecurityException,我按照当前响应者的建议来验证包名称是否与 Awareness 中注册的名称匹配API 注册步骤,它们确实匹配。如果事实上,如果我强迫它们不同,我会得到相同的异常,但响应代码为 6 而不是 -1;但是这种情况发生的失败不是间歇性地发生在每个请求上。当我查看开发人员控制台中的 Google Awareness API 概述时,我看到的崩溃数量与服务器错误 (5XX) 响应的数量大致相同。

然而,我的问题是,如果 Snapshot API 提供类似的方法

public static PendingResult<LocationResult> getLocation(GoogleApiClient client)

当异常发生在内部代码自己创建的单独线程中时,此方法的使用无法捕获它调用的代码抛出的 SecurityException。为什么 Awareness API 代码不能捕获 SecurityException 并像 LocationResult 失败一样处理它,而不是让我的应用程序崩溃?

4

2 回答 2

0

来自:https ://code.google.com/p/android/issues/detail?id=223751

我们的检查中有一个错误,当需要验证的网络错误时,有时会抛出此 SecurityException。该修复程序将在下一版本的 Google Play 服务中推出。

目前,最好的解决方法是在调用 GoogleApiClient.connect() 的线程上设置 UncaughtExceptionHandler。对于大多数人来说,这将在主线程上,您可以通过 Looper.myLooper().getThread() 获得。

于 2016-10-21T15:39:35.133 回答
-1

SecurityException 在对 GoogleApiClient.connect() 的调用中引发。请参阅引发 Google Awareness API SecurityException 以获得解决方法。

于 2016-10-14T23:32:33.537 回答