Closed SuXuan520 closed 3 months ago
Exception in thread "Client thread" java.lang.NoClassDefFoundError: cn/hackedmc/apotheosis/util/interfaces/InstanceAccess at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527) at net.minecraft.client.main.Main.main(Main.java:101) Caused by: java.lang.ClassNotFoundException: cn.hackedmc.apotheosis.util.interfaces.InstanceAccess at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527) ... 10 more Exception in thread "Client Shutdown Thread" java.lang.NoClassDefFoundError: cn/hackedmc/apotheosis/util/interfaces/InstanceAccess at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527) at net.minecraft.client.main.Main$2.run(Main.java:97) Caused by: java.lang.ClassNotFoundException: cn.hackedmc.apotheosis.util.interfaces.InstanceAccess at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527) ... 10 more
注意配置 obfuscatePackage
填写你需要混淆的包名 rootPackages
填写你项目的根包(分析和修改引用的范围)
例如你需要混淆 cn.hackedmc.apotheosis
包,你的 cn.hackedmc.xxx.A
类调用了 cn.hackedmc.apotheosis.B
但是你不需要混淆 cn.hackedmc
下的其他包只需要混淆 apotheosis
包。理论上正确配置 obfuscatePackage: [ cn.hackedmc.apotheosis ]
和 rootPackages: [ cn.hackedmc ]
即可做到混淆 apotheosis
下类的同时修改 cn.hackedmc.Any
的引用
如果按照我这样的做法还是有问题,可以再反馈细节
如果你觉得麻烦,要最简单快速的混淆,参考 README
的
以下混淆不修改引用,相对稳定靠谱,如遇报错可以搭配使用以下配置
- 开启 enableEncryptString 和 enableAdvanceString 加密字符串
- 开启 enableJunk 花指令混淆
- 开启 enableXOR 对数字进行异或加密
使用类名混淆 会提示找不到这个类