Как исправить ошибку java.lang.NoClassDefFoundError
Мое приложение доступно в магазине игр. Это не сбои на всех устройствах, но я вижу этот сбой только на нескольких устройствах. Пожалуйста, помогите мне решить эту проблему.
java.lang.NoClassDefFoundError: Ошибка разрешения: Lcom/google/android/gms/auth/api/phone/SmsRetriever; в com.facebook.accountkit.internal.PhoneLoginController.createSmsToken(PhoneLoginController.java:250) в com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188ternal (LoginManager.java:372) по адресу com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:627) по адресу com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNlowM.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189) по адресу com.facebook.accountkit.ui.AccountKitActivity$1.onReceive(AccountKitActivity.java:176) по адресу android.support.v4.content.LndingBavaBante:297) на android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46) на android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116) at android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:148) на android.app.ActivityThread.main(ActivityThread.java:5417) на java.lang. отражать.Method.invoke(собственный метод) на 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" по пути: DexPathList[[zip file "/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) в java.lang.ClassLoader.loadClass(ClassLoader.java:469) в com.facebook.accountkit.internal.PhoneLoginController.createSmsToken (PhoneLoginCont2: PhoneLoginCont) com.facebook.accountkit.internal.PhoneLoginController.log В (PhoneLoginController.java:188) по адресу com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372) по адресу com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber6..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:46ort) на android.su4. content.LocalBroadcastManager $ 1.handleMessage (LocalBroadcastManager.java:116) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop(Looper.java:148) на android.app.ActivityThread. главная (ActivityThread.java:5417) в java.lang.reflect.Method.invoke(собственный метод) на 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 в java.lang.Class.classForName(собственный метод) в java.lang.BootClassLoader.findClass(ClassLoader.java.:781) в java.lang.BootClassLoader.loadClass(ClassLoader.java:841) в java.lang.ClassLoader.loadClass(ClassLoader.java:504) Причина: java.lang.NoClassDefFoundError: Класс не найден с помощью загрузчика загрузочного класса; нет трассировки стека
Я вижу Moto G (3-й и 4-й поколения), One Plus одно устройство, имеющее сбой.
Я добавил строку ниже в файл ProGuard.
-ignorewarnings -keep class * {public private *; }
1 ответ
API Retriever SMS доступен в Службах Google Play v10.2 и используется для автоматической проверки OTP SMS.
https://developers.google.com/identity/sms-retriever/
Этот API не будет доступен на устройствах, на которых не установлены сервисы Google Play - например, на устройствах Amazon Fire или устройствах в китайском регионе.
Если вы используете этот API, вы должны проверить, установлены ли сервисы Play на устройстве, прежде чем получить доступ к этому API.
Глядя на ваше исключение, кажется, что этот API использовался каким-то набором Facebook.