[Android] SDK 17.2.0 NEW R8/Proguard issue (not in 17.1.1) | Community
Skip to main content

When updating to 

io.intercom.android:intercom-sdk version 17.2.0

If R8/Proguard is enabled the following error occurs on the build:

Missing class lombok.Generated (referenced from: io.ably.lib.network.HttpBody io.ably.lib.network.HttpResponse$HttpResponseBuilder.body and 94 other contexts)

 

This does not happen on version 17.1.1  

It looks like maybe something changed in the build but didn’t include a rule in it’s consumer-rules.pro?  

gemini says: -dontwarn lombok.** may fix it?

Hi ​@J.T. Seán here from the Intercom engineering support team 👋 how are you doing today?

Thanks for reporting this! You're correct, the Ably library (a dependency) uses Lombok annotations that are compile-time only.
 

Lombok is a Java annotation library that generates code during compilation (like getters, setters, builders, etc.). Once the code is compiled, Lombok's job is done, it's not needed at runtime. The Ably library includes Lombok as a compileOnly dependency, so the annotations are available during build but aren't packaged into the final library.

 

When R8/ProGuard analyses the bytecode, it sees references to lombok.Generated and other Lombok classes, but those classes don't exist in the runtime classpath (because they were intentionally excluded). This triggers the "Missing class" warning.

 

So excluding Lombok from ProGuard/R8 warnings like you have said will resolve this.


So would it make sense for you add that to Intercom’s consumer-rules.pro for the library so end users don’t run into this?