注意:com.google.common.cache.Striped64动态访问声明的字段“ base”

ste*_*002 5 java android proguard android-studio android-proguard

我在我的Android Studio项目中使用ProGuard。在构建发行版时,我得到以下注意事项:

Note: com.google.common.cache.Striped64 accesses a declared field 'base' dynamically
      Maybe this is program field 'com.google.common.cache.Striped64 { long base; }'
      Maybe this is program field 'org.jsoup.nodes.Entities { java.util.Map base; }'
      Maybe this is program field 'org.jsoup.nodes.Entities$EscapeMode { org.jsoup.nodes.Entities$EscapeMode base; }'
Run Code Online (Sandbox Code Playgroud)

我试图用以下方法解决它:

-keep class org.jsoup.** { *; }
-keeppackagenames org.jsoup.nodes
-keep class com.google.common.cache.Striped64 { *; }
-keep class com.google.common.base.** { *; }
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。

如何解决此注释?

Bas*_*usa 5

To fix this you have to provide the following to your proguard configuration:

-keepclassmembers class ** {
  ** base;
}
Run Code Online (Sandbox Code Playgroud)

This simply means do not rename all members named "base" of any type in any class.

Works like a charm.