2011-09-29 73 views
15

我需要防止Proguard对包com.foo.*中的任何类进行混淆。如何停止混淆整个软件包的proguard?

我曾尝试:

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

但proguard的说:

Error: Unexpected keyword 'com.sun.foo.**' in line 32 of file 'obfuscationConfig.pro', included from argument number 1

,我收到了类似的错误,如果我尝试keep name com.foo**keep * com.foo.**

+0

你有没有找到故障原因是给你“意外的关键字”?我正在使用类似的东西,它曾经工作,但最近我一直得到同样的错误。 – speedynomads

回答

30

尝试使用以下命令:

-keep class com.foo.** { 
    public protected private *; 
} 
+0

这不就是一切吗? – tomwhipple

+0

@tomwhipple它会将所有内容保存在'com.foo'包(和子包) – Idolon

+4

...答案是“是”,为了防止包私有成员混淆,您必须在块中添加一个新行,'*;'什么是用户可恶的憎恶。 – nmr