This is the most common mistake related to the fact that βmany pre-compiled third-party libraries belong to other libraries that are not actually used and, therefore, are not present. This works fine in debug builds, but in build versions ProGuard expects everything to be libraries, so it can do the right static analysis. "
From: http://proguard.sourceforge.net/index.html#manual/examples.html
So this javax.annotation.Nullable may not be in your project, but the libraries you use have some classes that internally reference them.
However, you can avoid these warnings with -dontwarn javax.annotation.** or --dontwarn com.google.common.collect.** . But I do not think that -keep class javax.annotation.** { *; } -keep class javax.annotation.** { *; } and looks illogical.
So, if you do -keep class com.google.common.collect.** { *; } -keep class com.google.common.collect.** { *; } , you skip this package from all three steps of the Proguard (Shortening, Optimizing and Obfuscating), which makes sense according to my understanding.
source share