我正在尝试使用 Proguard 来混淆我的 Android 应用程序,该应用程序使用库 jsch-1.50.jar 将文件上传到 SFTP 服务器。
当我从 Eclipse 进行导出时,我收到“无法引用类”的警告,并且什么也没有产生。我已经尝试了各种方法来告诉 Proguard 忽略 jsch 类,但这没有任何区别,因此我想知道我是否误解了它是如何工作的。我不太担心优化,但我希望代码被混淆。
我已将 proguard-properties 设置如下:
-keep class com.jcraft.jsch.jce.*
-keep class * extends com.jcraft.jsch.KeyExchange
-keep class com.jcraft.jsch.**
-keep class com.jcraft.jzlib.ZStream
-keep class com.jcraft.jsch.Compression
-keep class org.ietf.jgss.*
-libraryjars /libs/jsch-0.1.50.jar
project-properties 文件包含“proguard.config=proguard-project.txt”的条目。
删除重复项的导出输出:-
Warning: com.jcraft.jsch.jcraft.Compression: can't find referenced class com.jcraft.jzlib.ZStream
Warning: com.jcraft.jsch.jgss.GSSContextKrb5: can't find referenced class org.ietf.jgss.Oid
Warning: com.jcraft.jsch.jgss.GSSContextKrb5: can't find referenced class org.ietf.jgss.GSSManager
Warning: com.jcraft.jsch.jgss.GSSContextKrb5: can't find referenced class org.ietf.jgss.GSSException
Warning: com.jcraft.jsch.jgss.GSSContextKrb5: can't find referenced class org.ietf.jgss.GSSContext
Warning: com.jcraft.jsch.jgss.GSSContextKrb5: can't find referenced class org.ietf.jgss.MessageProp
Warning: there were 44 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
Error: Please correct the above warnings first.
非常感谢任何指针。
谢谢迈克