Jump to content

Forge reobfuscation randomly fails on rock/stone


Two

Recommended Posts

Whenever I have a block in my mod that uses Blocks.stone or Materials.rock reobfuscation completely randomly fails sometimes.

 

That is: the code works, then (without any change) I do a re-compile, and the game crashes with

 

cpw.mods.fml.common.LoaderException: java.lang.NoSuchFieldError: rock

at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)

at cpw.mods.fml.common.Loader.initializeMods(Loader.java:739)

at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)

at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552)

at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)

at net.minecraft.client.main.Main.main(SourceFile:148)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

Caused by: java.lang.NoSuchFieldError: rock

at two.graves.blocks.BlockGrave.<init>(BlockGrave.java:40)

at two.graves.ProxyBase.registerBlocks(ProxyBase.java:51)

at two.graves.ProxyBase.onInit(ProxyBase.java:77)

at two.graves.ProxyClient.onInit(ProxyClient.java:16)

at two.graves.Graves.load(Graves.java:64)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)

at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)

at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)

at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)

 

 

Then I recompile the exact same code-base (without any changes) and the crash is gone. I have not seen this happen with anything but Materials.rock / Blocks.stone.

 

This is really annoying when you do a quick recompile to change something like version number after extensive testing, upload the mod just to realize that it is crashing because of this.

My Mods

 

New Dawn - A completely new terrain engine for Minecraft

TwoTility - Blocks and Items for a better Minecraft

TwoGraves - Keeps your items safe on death

Link to comment
Share on other sites

How do you build your mod? You have to use

gradlew build

.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

I am not sure if there is even any other way. ;)

Some people just export it from Eclipse and expect it to work.

 

I don't know what could cause the issue. We (I) need to have more info:

1. The Forge version you are using

Caused by: java.lang.NoSuchFieldError: rock
at two.graves.blocks.BlockGrave.<init>(BlockGrave.java:40)

2. Show us line 40 from BlockGrave. Or do you have a GitHub workspace we can use?

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

I had this issue starting with at least Forge version 1277 and I still have the issue with 1481.

 

You can find my mods here: https://github.com/twothe/

 

Affected are all mods that somehow use stone/rock as written above. I could not yet find any pattern to this, it seems to happen just randomly and does not seem to be associated to my code.

My Mods

 

New Dawn - A completely new terrain engine for Minecraft

TwoTility - Blocks and Items for a better Minecraft

TwoGraves - Keeps your items safe on death

Link to comment
Share on other sites

The error occurred again yesterday, and I can now say for sure that it is a re-obfuscation failure.

 

I had just finished an update, did clean & build, tested the result in the IDE (non-obfuscated) and everything was working fine. So I copied the lib from that build to a real MC environment and it failed with the rock issue. I hit clean & build again, copied the lib again and then everything was working fine.

My Mods

 

New Dawn - A completely new terrain engine for Minecraft

TwoTility - Blocks and Items for a better Minecraft

TwoGraves - Keeps your items safe on death

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.