Невозможно включить Proguard в проект Android, содержащий jsch lib

Я пытаюсь использовать Proguard для обфускации моего приложения для Android, которое использует библиотеку jsch-1.50.jar для загрузки файлов на SFTP-сервер.

Когда я делаю экспорт из Eclipse, я получаю предупреждения «не может ссылаться на класс», и ничего не создается. Я пробовал всевозможные варианты, чтобы сказать Proguard игнорировать классы jsch, но это не имеет никакого значения, и поэтому я задаюсь вопросом, не ошибаюсь ли я, как это работает. Меня не волнует оптимизация, но я бы хотел, чтобы код был запутан.

Я настроил свойства proguard следующим образом:

-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 

Файл свойств проекта содержит запись для «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. 

Был бы очень признателен за любые указатели.

Спасибо Майку

После небольшого расследования я обнаружил следующее …

Я забыл включить jzlib-1.1.1.jar в проект с соответствующим

 -libraryjars /libs/jzlib-1.1.1.jar 

Запись в proguard-properties.txt.

Также, чтобы игнорировать предупреждение, ссылаясь на «класс org.ietf.jgss», я попробовал предложенный метод исключения ссылочного класса

 -libraryjars /libs/jsch-0.1.50.jar(!com.jcraft.jsch.jgss/GSSContextKrb5.class) 

Но это не помогло. В итоге я пошел с: –

 -dontwarn org.ietf.jgss.** 
Intereting Posts