2013-09-22 17 views
0

Я использую «jackrabbit-webdav-2.2.5-jar-with-dependencies.jar» в приложении для Android. Я сам его создал, и все работает нормально, пока я отлаживаю или запускаю приложение непосредственно из затмения. Также, когда я экспортирую приложение как «подписанный пакет приложений» без Proguard, чтобы установить его на любом устройстве, все работает отлично.Android и Proguard с jackrabbit-webdav: Proguard возвращен с кодом ошибки 1. См. Console

Но при использовании Proguard (java obfuscator) запустите проблемы. Вот моментальный снимок с консоли:

[2013-09-22 22:23:45 - Zarathustra] Proguard returned with error code 1. See console 
[2013-09-22 22:23:45 - Zarathustra] Note: there were 1 duplicate class definitions. 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.apache.jackrabbit.commons.AbstractItem: can't find superclass or interface javax.jcr.Item 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.apache.jackrabbit.commons.AbstractNode: can't find superclass or interface javax.jcr.Node 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.apache.jackrabbit.commons.AbstractProperty: can't find superclass or interface javax.jcr.Item 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.apache.jackrabbit.commons.AbstractProperty: can't find superclass or interface javax.jcr.Property 
..... 
..... 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder 
[2013-09-22 22:23:45 - Zarathustra] Warning: org.slf4j.MarkerFactory: can't find referenced class org.slf4j.impl.StaticMarkerBinder 
[2013-09-22 22:23:45 - Zarathustra] Warning: there were 2333 unresolved references to classes or interfaces. 
[2013-09-22 22:23:45 - Zarathustra]   You may need to specify additional library jars (using '-libraryjars'). 
[2013-09-22 22:23:45 - Zarathustra] Warning: there were 40 unresolved references to program class members. 
[2013-09-22 22:23:45 - Zarathustra]   Your input classes appear to be inconsistent. 
[2013-09-22 22:23:45 - Zarathustra]   You may need to recompile them and try again. 
[2013-09-22 22:23:45 - Zarathustra]   Alternatively, you may have to specify the option 
[2013-09-22 22:23:45 - Zarathustra]   '-dontskipnonpubliclibraryclassmembers'. 
[2013-09-22 22:23:45 - Zarathustra] java.io.IOException: Please correct the above warnings first. 
[2013-09-22 22:23:45 - Zarathustra]  at proguard.Initializer.execute(Initializer.java:321) 
[2013-09-22 22:23:45 - Zarathustra]  at proguard.ProGuard.initialize(ProGuard.java:212) 
[2013-09-22 22:23:45 - Zarathustra]  at proguard.ProGuard.execute(ProGuard.java:87) 
[2013-09-22 22:23:45 - Zarathustra]  at proguard.ProGuard.main(ProGuard.java:493) 

Я пробовал несколько тегов proguard, но это не помогло. Кажется, что proguard явно нуждается в всех зависимостях в пути к классам. Возможно, проблема должна быть решена с помощью maven? (Я не эксперт, использующий maven - я пробовал несколько вещей, но они не помогли).

Есть ли такая проблема? Любое предложение или подсказка, как его решить?

Заранее благодарен! John

ответ

1

ProGuard действительно нуждается во всех зависимостях для его статического анализа. Тем не менее, недостающие классы предположительно никогда не используются, так что вы можете сказать ProGuard игнорировать их:

-dontwarn javax.jcr.** 
-dontwarn org.slf4j.** 

Смотрите руководство Proguard> Устранение неполадок>Warning: can't find referenced class

Смежные вопросы