0

Android用アプリで「jackrabbit-webdav-2.2.5-jar-with-dependencies.jar」を使用しています。私はそれを自分で構築しましたが、Eclipse から直接アプリをデバッグまたは実行する限り、すべて正常に動作します。また、任意のデバイスにインストールするために、Proguard を使用せずに「署名済みアプリケーション パッケージ」としてアプリをエクスポートすると、すべて正常に動作します。

しかし、Proguard (Java 難読化ツール) を使用すると、問題が発生します。コンソールからのスナップショットを次に示します。

[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 は、クラスパスで明示的にすべての依存関係を必要とするようです。多分問題はmavenで解決しなければなりませんか?(私は Maven を使用する専門家ではありません。いくつかのことを試しましたが、役に立ちませんでした)。

誰もそのような問題を抱えていますか?それを解決するための提案やヒントはありますか?

前もって感謝します!ジョン

4

1 に答える 1

3

実際、ProGuard は静的分析のためにすべての依存関係を必要とします。ただし、欠落しているクラスはおそらく使用されないため、ProGuard にそれらを無視するように指示できます。

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

ProGuard のマニュアルを参照してください > トラブルシューティング >警告: 参照されているクラスが見つかりません

于 2013-09-25T00:33:48.353 に答える