Specifies to instrument the processed code with debugging statements that print out suggestions for missing ProGuard configuration. This can be very useful to get practical hints at runtime, if your processed code crashes because it still lacks some configuration for reflection.
W/ProGuard: The class 'com.example.SampleActivity' iscallingClass.forNametoretrieve theclass 'com.exmaple.NoneExistClass', butthelattercouldnotbefound. Itmayhavebeenobfuscatedorshrunk. Youshouldconsiderpreservingtheclasswithitsoriginalname, with a setting like: -keep classcom.exmaple.NoneExistClass W/System.err: java.lang.ClassNotFoundException: com.exmaple.NoneExistClass at java.lang.Class.classForName(Native Method) ...
publicstaticvoidlogMissingClass(String callingClassName, String invokedClassName, String invokedMethodName, String missingClassName){ if (!LOG_ONCE || !missingClasses.contains(missingClassName)) { missingClasses.add(missingClassName); log("The class '" + originalClassName(callingClassName) + "' is calling " + invokedClassName + "." + invokedMethodName + " to retrieve\n" + "the class '" + missingClassName + "', but the latter could not be found.\n" + "It may have been obfuscated or shrunk.\n" + "You should consider preserving the class with its original name,\n" + "with a setting like:\n" + EMPTY_LINE + keepClassRule(missingClassName) + "\n" + EMPTY_LINE); } }