Eclipse Antスクリプトを使用して、ProGuardでjarファイルを難読化します。
この回答とほぼ同じ設定ファイルを使用しています。オプションを使用して適切なライブラリへの参照を追加し、を使用-libraryjars
して2つの警告を省略しました-dontnote
その後、生成されたjarをそれらのライブラリとともにfatjarに含めます。上記の.cfgを使用すれば問題なく動作します。
しかし、あまり難読化されていません。典型的なアプリケーションの例では、
-keep public class mypackage.MyMain {
public static void main(java.lang.String[]);
}
だからこれは変更されます
-keep public class * {
public protected *;
}
新しいファットジャーを再生した後、例外がスローされます。
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.NullPointerException
at mypackage.a.d.a.a(SourceFile:11)
at mypackage.a.d.a.a(SourceFile:44)
at mypackage.MyMain.main(SourceFile:61)
... 5 more
どうすれば修正できますか?この問題についてさらに調査する方法についてアドバイスをお願いします。