- 
                Notifications
    You must be signed in to change notification settings 
- Fork 17
Description
When using Proguard/R8, our app crashes with Flagsmith with the following exception:
FATAL EXCEPTION: main
Process: redacted, PID: 22008
 java.lang.IllegalArgumentException: Unable to create call adapter for interface N7.c
    for method c.a
	at N7.X.j(Unknown Source:39)
	at N7.o.a(Unknown Source:2792)
	at N7.Q.invoke(Unknown Source:102)
	at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
	at $Proxy1.a(Unknown Source)
	at redacted.RemoteConfig$Companion.init$redacted(Unknown Source:120)
	at redacted.doSetup(Unknown Source:85)
	at redacted.MyApplication$onCreate$1.invokeSuspend(Unknown Source:47)
	at o6.a.resumeWith(Unknown Source:8)
	at kotlinx.coroutines.DispatchedTask.run(Unknown Source:108)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7397)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@a0ae3d4, Dispatchers.Main]
Caused by: java.lang.IllegalArgumentException: Call return type must be parameterized as Call<Foo> or Call<? extends Foo>
	at N7.n.a(Unknown Source:44)
	at C.h.l(Unknown Source:34)
	at N7.o.a(Unknown Source:2627)
	... 15 more
It works however after adding the following rules (we don't use Retrofit otherwise, that's why we have to add them specifically for Flagsmith):
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response