Answered

Intercom android SDK v 10.6.1 is crashing on the app launch.

  • 1 February 2022
  • 1 reply
  • 493 views

We are in process of supporting Android 12 and upgrading our app to use AGP 7+ for which we are also updating to JDK11.

 

We have used intercom version 10.6.1 for android app. The app is crashing everytime. The stack trace is as below.

 

---------------------------------------------------------------------------------------------------------------------------------------

 

Fatal Exception: java.lang.IllegalArgumentException: Unable to create call adapter for interface com.instabug.library.lr0
for method MessengerApi.updateUser
at retrofit2.Utils.methodError(Utils.java:54)
at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:116)
at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:67)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:39)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy7.updateUser($Proxy7.java)
at io.intercom.android.sdk.api.Api.retriableUpdateUser(Api.java:186)
at io.intercom.android.sdk.api.Api.retriableUpdateUser(Api.java:182)
at io.intercom.android.sdk.api.Api.updateUser(Api.java:178)
at io.intercom.android.sdk.api.UserUpdater.updateUser(UserUpdater.java:31)
at io.intercom.android.sdk.middleware.UserUpdaterMiddleware.dispatch(UserUpdaterMiddleware.java:39)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.middleware.ApiMiddleware.dispatch(ApiMiddleware.java:30)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.middleware.LoggerMiddleware.dispatch(LoggerMiddleware.java:20)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.store.Store.dispatch(Store.java:81)
at io.intercom.android.sdk.LifecycleTracker.onActivityStarted(LifecycleTracker.java:83)
at android.app.Application.dispatchActivityStarted(Application.java:406)
at android.app.Activity.dispatchActivityStarted(Activity.java:1348)
at android.app.Activity.onStart(Activity.java:1833)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:496)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at com.compass.compass.activities.BaseActivity.onStart(BaseActivity.kt:46)
at com.compass.compass.activities.MainActivity.onStart(MainActivity.kt:159)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
 
Caused by java.lang.IllegalStateException: return type must be parameterized as Call<NetworkResponse<<Foo>>
at io.intercom.android.sdk.helpcenter.utils.networking.NetworkResponseAdapterFactory.get(NetworkResponseAdapterFactory.kt:23)
at retrofit2.Retrofit.nextCallAdapter(Retrofit.java:253)
at retrofit2.Retrofit.callAdapter(Retrofit.java:237)
at retrofit2.HttpServiceMethod.createCallAdapter(HttpServiceMethod.java:114)
at retrofit2.HttpServiceMethod.parseAnnotations(HttpServiceMethod.java:67)
at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:39)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:202)
at retrofit2.Retrofit$1.invoke(Retrofit.java:160)
at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
at $Proxy7.updateUser($Proxy7.java)
at io.intercom.android.sdk.api.Api.retriableUpdateUser(Api.java:186)
at io.intercom.android.sdk.api.Api.retriableUpdateUser(Api.java:182)
at io.intercom.android.sdk.api.Api.updateUser(Api.java:178)
at io.intercom.android.sdk.api.UserUpdater.updateUser(UserUpdater.java:31)
at io.intercom.android.sdk.middleware.UserUpdaterMiddleware.dispatch(UserUpdaterMiddleware.java:39)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.middleware.ApiMiddleware.dispatch(ApiMiddleware.java:30)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.middleware.LoggerMiddleware.dispatch(LoggerMiddleware.java:20)
at io.intercom.android.sdk.store.Store$3.dispatch(Store.java:74)
at io.intercom.android.sdk.store.Store.dispatch(Store.java:81)
at io.intercom.android.sdk.LifecycleTracker.onActivityStarted(LifecycleTracker.java:83)
at android.app.Application.dispatchActivityStarted(Application.java:406)
at android.app.Activity.dispatchActivityStarted(Activity.java:1348)
at android.app.Activity.onStart(Activity.java:1833)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:496)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at com.compass.compass.activities.BaseActivity.onStart(BaseActivity.kt:46)
at com.compass.compass.activities.MainActivity.onStart(MainActivity.kt:159)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

 

 

 

icon

Best answer by Aparna 3 February 2022, 16:13

View original

1 reply

Hey @nitin g13​ !

 

I think you were in touch with the support team on this if I am not wrong and mentioned that issue was sorted after you modified the proguard rules for :

retrofit-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclasseswithmembers class * {
@retrofit2.http.* <methods>;

 

 

Reply