Getting too many Proguard warnings

南楼画角 提交于 2019-12-08 06:07:33

问题


I am trying to obfuscate my java application that is packed into a SINGEL jar. The application uses SWT gui libaries among others. I have duly listed them all in the Proguard configuration file via -libraryjars, but still I get too many warnings of the same type i.e.: "Warning: library class org.eclipse.swt.accessibility.Accessible$10 extends or implements program class org.eclipse.swt.internal.ole.win32.COMObject"

What am doing wrong here??

Here is how my Proguard configuration looks like:

-injars 'D:\Tasks\Deployment\NEW - 30.06.2011\proguard4.6\lib\fevflex.jar'
-outjars 'D:\Tasks\Deployment\NEW - 30.06.2011\proguard4.6\lib\fevflex_out.jar'

-libraryjars 'C:\Program Files\Java\jre6\lib\rt.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\resources.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\jsse.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\jce.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\charsets.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\ext\dnsns.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\ext\localedata.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\ext\sunjce_provider.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\ext\sunmscapi.jar'
-libraryjars 'C:\Program Files\Java\jre6\lib\ext\sunpkcs11.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\commons-collections-3.2.1.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\commons-io-2.0.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\mysql-connector-java-5.1.7-bin.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\org.eclipse.core.commands_3.4.0.I20080509-2000.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\org.eclipse.equinox.common_3.4.0.v20080421-2006.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\org.eclipse.jface_3.4.2.M20090107-0800.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\org.eclipse.nebula.widgets.grid-1.0.0-SNAPSHOT.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\org.swtchart_0.6.0.v20090801.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\swt.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\swt_64bit.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\swtgraphics2d.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\testng.jar'
-libraryjars 'D:\eclipse\workspace\main\Code\demo\lib\xom-1.2.6.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\c3p0-0.9.1.1.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\jboss-common-jdbc-wrapper.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\log4j-1.2.6.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\org.eclipse.swt.win32.win32.x86_3.3.0.v3346.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\xml-apis.jar'
-libraryjars 'D:\eclipse\eclipse\plugins\org.eclipse.osgi_3.6.1.R36x_v20100806.jar'
-libraryjars 'D:\eclipse\eclipse\plugins\org.eclipse.osgi.services_3.2.100.v20100503.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\eclipseAdaptor.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\org.eclipse.osgi_3.3.0.v20070530.jar'
-libraryjars 'D:\eclipse\eclipse\morelibs\xerces-2.2.1.jar'
-libraryjars 'D:\eclipse\eclipse\plugins\org.apache.commons.logging_1.0.4.v201005080501.jar'

-dontskipnonpubliclibraryclassmembers
-dontshrink
-dontoptimize
-dontusemixedcaseclassnames
-adaptresourcefilenames **.properties
-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF
-dontpreverify
-dontnote
-ignorewarnings
-printconfiguration 'D:\Tasks\Deployment\NEW - 30.06.2011\proguard4.6\lib\FLEX.pro'


-keep public class main.FEVFlex {
    public static void main(java.lang.String[]);
}

-keep class nu.** {
    <fields>;
    <methods>;
}

-keep class org.** {
    <fields>;
    <methods>;
}

-keep class com.** {
    <fields>;
    <methods>;
}

# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum  * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
    native <methods>;
}

回答1:


ProGuard manual > Troubleshooting > Warning: library class ... depends on program class ...

In this case, it looks like org.eclipse.swt.internal.ole.win32.COMObject is in your input jar fevflex.jar. You should remove it, or at least include it as part of a library jar.




回答2:


I have noticed that you include both swt.jar and swt_64bit.jar in your libraries, while only one of these should be used at a time. Perhaps this is one of the reasons, why you are getting a lot of warnings.



来源:https://stackoverflow.com/questions/6735181/getting-too-many-proguard-warnings

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!