我的应用程序在Play商店上线。它并没有在所有设备中崩溃,但我只能在一些设备中看到这种崩溃。请帮我解决这个问题。
java.lang.NoClassDefFoundError:解析失败: LCOM /谷歌/安卓/ GMS /认证/ API /电话/ SmsRetriever;在 com.facebook.accountkit.internal.PhoneLoginController.createSmsToken(PhoneLoginController.java:250) 在 com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188) 在 com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372) 在 com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:627) 在 com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNumber(PhoneLoginFlowManager.java:57) 在 com.facebook.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189) 在 com.facebook.accountkit.ui.AccountKitActivity $ 1.onReceive(AccountKitActivity.java:176) 在 android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) 在 android.support.v4.content.LocalBroadcastManager.access $ 000(LocalBroadcastManager.java:46) 在 android.support.v4.content.LocalBroadcastManager $ 1.handleMessage(LocalBroadcastManager.java:116) 在android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)引起 by:java.lang.ClassNotFoundException:没有找到类 路径上的“com.google.android.gms.auth.api.phone.SmsRetriever”: DexPathList [[zip文件 “/data/app/gharkadabba.gharkadabba-1/base.apk"],nativeLibraryDirectories=[/data/app/gharkadabba.gharkadabba-1/lib/x86, / vendor / lib,/ system / lib]] dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 在java.lang.ClassLoader.loadClass(ClassLoader.java:511)at java.lang.ClassLoader.loadClass(ClassLoader.java:469)at com.facebook.accountkit.internal.PhoneLoginController.createSmsToken(PhoneLoginController.java:250) 在 com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188) 在 com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372) 在 com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:627) 在 com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNumber(PhoneLoginFlowManager.java:57) 在 com.facebook.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189) 在 com.facebook.accountkit.ui.AccountKitActivity $ 1.onReceive(AccountKitActivity.java:176) 在 android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) 在 android.support.v4.content.LocalBroadcastManager.access $ 000(LocalBroadcastManager.java:46) 在 android.support.v4.content.LocalBroadcastManager $ 1.handleMessage(LocalBroadcastManager.java:116) 在android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 抑制:java.lang.ClassNotFoundException: com.google.android.gms.auth.api.phone.SmsRetriever at java.lang.Class.classForName(Native Method)at java.lang.BootClassLoader.findClass(ClassLoader.java:781)at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 引起:java.lang.NoClassDefFoundError:找不到类 引导类加载器;没有可用的堆栈跟踪
我可以看到Moto G(第3代和第4代),One Plus设备发生故障。
我将以下行添加到ProGuard文件中。
-ignorewarnings -keep class * {public private *; }
答案 0 :(得分:1)
SMS Playver API可在Google Play Services v10.2中使用,用于自动验证OTP短信。
https://developers.google.com/identity/sms-retriever/
此API不会在未安装Google Play服务的设备中提供 - 例如Amazon Fire设备或中国地区的设备。
如果您使用此API,则必须在访问此API之前检查设备中是否安装了Play服务。
查看您的例外情况,似乎某些Facebook工具包已经使用了这个API。