Search code examples
androidproguardroboguice

Proguard - removing logs roboguice.util.Ln


In my app we are using logs from roboguice.util.Ln. I read how to remove logging by using proguard, but it seems to not working on roboguice logging. The last thing i tried was to add in my proguard configuration file something like this:

-assumenosideeffects class roboguice.util.Ln {
  public static *** v(...);
  public static *** i(...);
  public static *** w(...);
  public static *** d(...);
  public static *** e(...);

  public static boolean isDebugEnabled();

  public static boolean isVerboseEnabled();
}

-assumenosideeffects class roboguice.util.Ln$Print {
  public int println(int, java.lang.String);
  protected java.lang.String processMessage(java.lang.String);
  protected static java.lang.String getScope(int);
}

I also tried to do this without adding Print inner class, methods is***Enabled() etc. Any ideas how to remove roboguice.util.Ln logs?


Solution

  • Your configuration for roboguice.util.Ln looks correct. However, the option -assumenosideeffects only has effect with optimization enabled. In Android builds this means: in release mode and with the shared configuration proguard-android-optimize.txt in project.properties for Ant, or build.gradle for Gradle.