0

My app is live on play store. Its not crashing in all devices but I can see this crash in a few device only. Please help me to fix this issue.

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/auth/api/phone/SmsRetriever; at com.facebook.accountkit.internal.PhoneLoginController.createSmsToken(PhoneLoginController.java:250) at com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188) at com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372) at com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:627) at com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNumber(PhoneLoginFlowManager.java:57) at com.facebook.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189) at com.facebook.accountkit.ui.AccountKitActivity$1.onReceive(AccountKitActivity.java:176) at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46) at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116) at 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) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.auth.api.phone.SmsRetriever" on path: DexPathList[[zip file "/data/app/gharkadabba.gharkadabba-1/base.apk"],nativeLibraryDirectories=[/data/app/gharkadabba.gharkadabba-1/lib/x86, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at 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)  at com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188)  at com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372)  at com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:627)  at com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNumber(PhoneLoginFlowManager.java:57)  at com.facebook.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189)  at com.facebook.accountkit.ui.AccountKitActivity$1.onReceive(AccountKitActivity.java:176)  at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)  at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)  at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)  at 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)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  Suppressed: 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) Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

I can see Moto G (3rd & 4th Gen), One Plus one device having crash.

I added below line to ProGuard file.

-ignorewarnings -keep class * { public private *; }

5
  • What is the class that is not found? It is missing from the exception... Commented Aug 10, 2017 at 14:35
  • add your pro-guard configuration file Commented Aug 10, 2017 at 14:37
  • @NileshDeokar. updated with pro-guard file code. Commented Aug 10, 2017 at 14:41
  • Is there a possibility that a particular class doesn't exist in such devices? How about using reflection? Commented Aug 10, 2017 at 14:57
  • No thats not possible. @Swati. its android 6/7. these are latest android versions. If i add this to gradle. then only it crashing. compile 'com.google.firebase:firebase-messaging:11.0.4' compile 'com.google.firebase:firebase-core:11.0.4' Commented Aug 10, 2017 at 15:10

1 Answer 1

1

SMS Retriever API is available in Google Play Services v10.2 and is used to auto-verify the OTP SMS.

https://developers.google.com/identity/sms-retriever/

This API will not be available in the devices that do not have Google Play Services installed - like Amazon Fire devices or the devices in the Chinese region.

If you are using this API, you have to check whether Play services are installed in the device before accessing this API.

Looking at your exception, it seems this API has been used by some Facebook kit.

Sign up to request clarification or add additional context in comments.

2 Comments

Yes, exception happen by Facebook Account kit.
You can check the crash report and confirm whether these crashes happen only in the devices that don't have Play services v10.2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.