本帖最后由 Hueihuea 于 2020-3-30 15:31 编辑
进行字节码操作只要使用ClassWriter.COMPUTE_FRAMES就会发生以下报错
复制代码
复制代码
是否是因为运行早于forge进行反混淆
确实如此?
重写getCommonSuperClass解决
所以有没有人教教我这是什么原因产生的
为什么用srg名找不到类 forge不应该在我之前就把notch名转成srg名了吗
进行字节码操作只要使用ClassWriter.COMPUTE_FRAMES就会发生以下报错
- ClassNode classNode = new ClassNode(Opcodes.ASM5);
- ClassReader classReader = new ClassReader(basicClass);
- classReader.accept(classNode, 0);
- ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
- classNode.accept(classWriter);
- return classWriter.toByteArray();
- Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: net.minecraft.client.renderer.entity.Render
- at org.objectweb.asm.ClassWriter.getCommonSuperClass(Unknown Source)
- at org.objectweb.asm.ClassWriter.a(Unknown Source)
- at org.objectweb.asm.Frame.a(Unknown Source)
- at org.objectweb.asm.Frame.a(Unknown Source)
- at org.objectweb.asm.MethodWriter.visitMaxs(Unknown Source)
- at org.objectweb.asm.tree.MethodNode.accept(Unknown Source)
- at org.objectweb.asm.tree.MethodNode.accept(Unknown Source)
- at org.objectweb.asm.tree.ClassNode.accept(Unknown Source)
- at mchhui.customnpcsfix.coremod.noppes.npcs.client.renderer.RenderCustomNpcTansfromer.transform(RenderCustomNpcTansfromer.java:61)
- at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:256)
- ... 44 more
是否是因为运行早于forge进行反混淆
确实如此?
重写getCommonSuperClass解决
所以有没有人教教我这是什么原因产生的
为什么用srg名找不到类 forge不应该在我之前就把notch名转成srg名了吗
同遇到过,仅使用COMPUTE_MAX正常。。。具体原理我也不知道,或许COMPUTE_FRAME时候会加载对应的类?