gpt4 book ai didi

java - GoogleAuthUtil 类上的 VerifyError

转载 作者:行者123 更新时间:2023-11-30 02:28:14 27 4
gpt4 key购买 nike

有时我可以在崩溃报告服务日志中找到如下所示

Caused by: java.lang.VerifyError: com/google/android/gms/auth/GoogleAuthUtil
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(ProGuard:255)
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(ProGuard:279)
at com.google.api.client.http.HttpRequest.execute(ProGuard:859)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(ProGuard:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(ProGuard:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(ProGuard:460)

来自文档

Thrown when the VM notices that an attempt is made to load a class which does not pass the class verification phase.

这种情况很少发生,而且主要发生在已获得 root 权限的设备上。此类打包在应用程序中,所以奇怪的是它不仅仅适用于某些设备。

我认为这是因为有人试图修改应用程序(例如通过 odex 或 dalvik-cache 修补)。目前我让应用程序崩溃,因为它是 LinkageError 并且在我看来不应该被处理。我是对的,还是可能有其他原因导致此问题?

最佳答案

由于 VerifyError 在 JVM 类加载期间遇到错误的字节代码时会抛出,因此任何错误都可能是由检测引起的。您在 Android 上的错误意味着您的字节码包含对 Dalvik 无法加载的 com/google/android/gms/auth/GoogleAuthUtil 的引用。如果 GoogleAuthUtil 中使用的方法需要比设备上现有的 API 级别更高的 API 级别,也可能会发生这种情况。

除此之外,很难从客户的设备中推断出更多事实。正如您所建议的那样,可能是有人试图修改应用程序的字节码或(在 Root设备的情况下更有可能)导致 GoogleAuthUtil 未正确执行的 API。

考虑到 a) 在大多数情况下您无法推断出根本原因,并且 b) 即使不采取太多措施,让应用程序崩溃在我看来也完全没问题。

关于java - GoogleAuthUtil 类上的 VerifyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638043/

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