gpt4 book ai didi

java - 使用 ProGuard 后出现 InspirationTargetException

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:11 25 4
gpt4 key购买 nike

我使用 Eclipse Ant 脚本通过 ProGuard 混淆了我的 jar。

我使用的配置文件与此几乎相同answer 。我刚刚使用 -libraryjars 选项添加了对正确库的更多引用,并使用 -dontnote

省略了两个警告

之后,我将生成的 jar 与这些库一起包含到 fat jar 中。如果使用上面提到的.cfg,则可以正常工作。

但并没有进行太多混淆。在 examples for typical application据说用

-keep public class mypackage.MyMain {
public static void main(java.lang.String[]);
}

所以这已经改变了

-keep public class * {
public protected *;
}

重新生成新的 fat jar 后,它会抛出异常:

    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

我该如何修复它?请给我一些如何进一步调查此问题的建议。

最佳答案

我能够通过使用 JD Java Decompiler 检查混淆的 jar 来解决这个特定问题。

那里有一行:

String path = JarEclipse.class.getResource("MyClass.class").toString();

这会导致 NullPointerException,因为 getResource 返回 null,因为 MyClass.class 已重命名。

关于java - 使用 ProGuard 后出现 InspirationTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com