As of Guava 17.0, this is what I needed in ProGuard config:
-dontwarn javax.annotation.**
-dontwarn javax.inject.**
-dontwarn sun.misc.Unsafe
Otherwise build fails with warnings like:
Warning: com.google.common.base.Absent:
can't find referenced class javax.annotation.Nullable
(That's because Guava uses annotations that are not part of Android runtime (android.jar). In this case it's fine to just mute the warnings.)
If you are using Gradle as the build tool, the above proguard-project.txt and the following in build.gradle produces an optimised and obfuscated APK while using Guava.
buildTypes {
release {
minifyEnabled true
proguardFile file('proguard-project.txt')
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
}
}
Alternatively you can include dependecy to jsr305.jar in build.gradle dependencies:
compile 'com.google.code.findbugs:jsr305:2.0.2'
...with only -dontwarn sun.misc.Unsafe in ProGuard config, but I preferred using -dontwarn also for the javax stuff.