Skip to main content

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)

 

 

 

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