在 'com.google.android.gms.internal.zzbsp.zzabx' 类的 crashlytics 报告中获取 'java.lang.String.toLowerCase()

Posted

技术标签:

【中文标题】在 \'com.google.android.gms.internal.zzbsp.zzabx\' 类的 crashlytics 报告中获取 \'java.lang.String.toLowerCase()\' 上的空对象引用\'【英文标题】:Getting 'java.lang.String.toLowerCase()' on a null object reference' in crashlytics report in 'com.google.android.gms.internal.zzbsp.zzabx' class在 'com.google.android.gms.internal.zzbsp.zzabx' 类的 crashlytics 报告中获取 'java.lang.String.toLowerCase()' 上的空对象引用' 【发布时间】:2017-03-05 13:47:49 【问题描述】:

我有一个应用程序,我在其中集成了 Crashlystics 库,它可以捕获应用程序中的致命问题并向开发人员报告。

方法如下:

public class MyApplication extends Application 

    @Override
    public void onCreate() 
        super.onCreate();
        Fabric.with(this, new Crashlytics());
    

以下是依赖项:

apply plugin: 'io.fabric'
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') 
        transitive = true;

compile 'com.google.android.gms:play-services:10.2.0'

今天,我收到一个报告,显示此错误:Fatal Exception: java.lang.NullPointerException Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object referencecom.google.android.gms.internal.zzbsp.zzabx (Unknown Source) 类中。此错误发生在运行 android marshmallow 的 LGE 设备上。

来自 Fabric.io 的 crashlytics 的完整堆栈跟踪:

#0. Crashed: TubeSockReader-1: 0 0 0x0000000000000000
       at com.google.android.gms.internal.zzbsp.zzabx(Unknown Source)
       at com.google.android.gms.internal.zzbsm.zzabv(Unknown Source)
       at com.google.android.gms.internal.zzbsm.getThreadFactory(Unknown Source)
       at com.google.android.gms.internal.zzbsm$2.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

--

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
       at com.google.android.gms.internal.zzbsp.zzabx(Unknown Source)
       at com.google.android.gms.internal.zzbsm.zzabv(Unknown Source)
       at com.google.android.gms.internal.zzbsm.getThreadFactory(Unknown Source)
       at com.google.android.gms.internal.zzbsm$2.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

#0. Crashed: TubeSockReader-1: 0 0 0x0000000000000000
       at com.google.android.gms.internal.zzbsp.zzabx(Unknown Source)
       at com.google.android.gms.internal.zzbsm.zzabv(Unknown Source)
       at com.google.android.gms.internal.zzbsm.getThreadFactory(Unknown Source)
       at com.google.android.gms.internal.zzbsm$2.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

#1. HeapTaskDaemon
       at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java)
       at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:355)
       at java.lang.Thread.run(Thread.java:818)

#2. pool-6-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#3. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:305)
       at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:242)
       at com.android.okhttp.ConnectionPool.-wrap0(ConnectionPool.java)
       at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:97)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#4. TubeSockReader-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:421)
       at java.util.concurrent.FutureTask.get(FutureTask.java:163)
       at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(SourceFile:43)
       at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(SourceFile:278)
       at com.crashlytics.android.core.CrashlyticsController$5.onUncaughtException(SourceFile:262)
       at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(SourceFile:30)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
       at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)

#5. GAC_Executor[1]
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at com.google.android.gms.internal.zzadd.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

#6. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(SourceFile:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(SourceFile:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(SourceFile:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(SourceFile:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#7. Answers Events Handler1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(SourceFile:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(SourceFile:30)
       at java.lang.Thread.run(Thread.java:818)

#8. GoogleApiHandler
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:135)
       at android.os.HandlerThread.run(HandlerThread.java:61)

#9. main
       at java.lang.Character.isDigit(Character.java:2672)
       at java.lang.Character.isDigit(Character.java:2658)
       at java.util.Formatter$FormatSpecifierParser.nextInt(Formatter.java:2406)
       at java.util.Formatter$FormatSpecifierParser.parseArgumentIndexAndFlags(Formatter.java:2329)
       at java.util.Formatter$FormatSpecifierParser.parseFormatToken(Formatter.java:2298)
       at java.util.Formatter.doFormat(Formatter.java:1071)
       at java.util.Formatter.format(Formatter.java:1042)
       at java.util.Formatter.format(Formatter.java:1011)
       at java.lang.String.format(String.java:1554)
       at java.lang.String.format(String.java:1528)
       at com.getsportalapp.sportal.SignUpActivity$7.run(SourceFile:599)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5421)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

#10. AsyncTask #2
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#11. FinalizerWatchdogDaemon
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:1031)
       at java.lang.Thread.sleep(Thread.java:985)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:273)
       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:284)
       at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:232)
       at java.lang.Thread.run(Thread.java:818)

#12. GAC_Executor[0]
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at com.google.android.gms.internal.zzadd.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)

#13. AsyncTask #1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#14. pool-1-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#15. pool-2-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#16. FirebaseDatabaseWorker
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#17. pool-3-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2053)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#18. Measurement Worker
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:423)
       at com.google.android.gms.internal.zzaud$zzd.run(Unknown Source)

#19. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:1220)
       at sun.misc.Unsafe.park(Unsafe.java:299)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:510)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(SourceFile:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(SourceFile:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(SourceFile:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(SourceFile:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)

#20. FinalizerDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:423)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
       at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
       at java.lang.Thread.run(Thread.java:818)

#21. ReferenceQueueDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:147)
       at java.lang.Thread.run(Thread.java:818)

#22. Crashlytics Exception Handler1
       at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
       at java.lang.Thread.getStackTrace(Thread.java:580)
       at java.lang.Thread.getAllStackTraces(Thread.java:522)
       at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(SourceFile:1092)
       at com.crashlytics.android.core.CrashlyticsController.writeFatal(SourceFile:831)
       at com.crashlytics.android.core.CrashlyticsController.access$100(SourceFile:59)
       at com.crashlytics.android.core.CrashlyticsController$6.call(SourceFile:285)
       at com.crashlytics.android.core.CrashlyticsController$6.call(SourceFile:278)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(SourceFile:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(SourceFile:30)
       at java.lang.Thread.run(Thread.java:818)

这是什么错误,为什么会出现此错误?

【问题讨论】:

泛泛地问。 请添加完整的堆栈跟踪 @SergGr 完成。请查看已编辑的问题。 您确定失败的构建实际上使用的是 10.2.0 版本的服务吗?令人惊讶的是,我在任何地方都找不到(编译的)类zzbsmzzbsp。你能检查一下它们是否真的是你的apk的一部分吗?您可以使用 dex2jar 从 apk 获取 jar,另请参阅 ***.com/questions/7888102/…。如果它们在您的 apk 中,您能否检查它们是从哪个包 (aar) 中查找的 ***.com/questions/35733844/… 建议的文件夹? 【参考方案1】:

这是 GMS 库中的一个错误。 在 Google 的一些虚拟测试设备上出现此错误(总是 Nexus 5x API 23 en-US ...)

有关更多信息,请参阅此问题:NullPointer on toLowerCase but I don't use that method anywhere

这是问题所在:https://issuetracker.google.com/issues/37135148

【讨论】:

【参考方案2】:

首先,您发布了一个线程转储,当真正需要诊断问题的是来自异常的完整堆栈跟踪时,这只是有点帮助。

也就是说,线程转储中显示的唯一 Activity 是 SignUpActivity,因此我建议您查看那里。

错误实际上是由于尝试在空字符串引用上调用 toLowerCase。例如,如果您使用 AsyncTask,并从后台线程访问 Text 字段,但 Activity 已被销毁(例如设备旋转),则可能会发生这种情况。

关于“com.google.android.gms.internal.zzbsp.zzabx”的部分很可能是一个红鲱鱼,是崩溃报告库的副作用。 先看看你自己的代码。

此外,如前所述,实际的堆栈跟踪(如果可用)可能会很有帮助。

【讨论】:

当我的设备连接到 android studio 时,我从未遇到此异常,因此我没有“异常的完整堆栈跟踪”。我从 Crashlytics 收到错误报告,并粘贴了我从中获得的堆栈跟踪。

以上是关于在 'com.google.android.gms.internal.zzbsp.zzabx' 类的 crashlytics 报告中获取 'java.lang.String.toLowerCase()的主要内容,如果未能解决你的问题,请参考以下文章

无法解决导入 com.google.android.gms

com.google.android.gms.common.api.ApiException:16:

无法解析“com.google.android.gms.gcm.GcmReceiver”?

NoClassDefFoundError:com.google.android.gms.common.GooglePlayServicesUtil 在设备上

程序类型已经存在:com.google.android.gms.internal.measurement.zzea

Android 9 Pie 崩溃 (com.google.android.gms...ClassNotFoundException)