【问题标题】:Google Awareness Snapshot.getLocation SecurityException is thrown引发 Google Awareness Snapshot.getLocation SecurityException
【发布时间】:2016-10-21 23:39:35
【问题描述】:

我知道这似乎是 (Google Awareness API SecurityException is thrown) 的副本,并且可能是,但由于我的 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 失败一样处理它,而不是让我的应用程序崩溃?

【问题讨论】:

标签: android google-awareness


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

在调用 GoogleApiClient.connect() 时会引发 SecurityException。请参阅Google Awareness API SecurityException is thrown 了解解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多