Jump to content

[1.10.2] Crash when trying to load external mod in development environment


Quintinius

Recommended Posts

I'm trying to develop a mod that depends on Realistic Terrain Generation (RTG) for terrain generation algorithms. My understanding is that, to load an external mod in the development environment, I can just place RTG's release jar into the /run/mods directory of my Eclipse workspace. According to some other forum threads I found, there used to be a problem with compatibility between obfuscated and deobfuscated versions of external mods, but apparently this has been changed in a recent version of Forge so that mods can be loaded whether or not they are obfuscated.

 

Unfortunately, when I try this with RTG, Minecraft crashes after postinitialisation with a NoClassDefFoundError. This happens whether or not I include its API in the /src/api source folder. I'm pretty sure it's not a problem with RTG, because there are already other mods that do the same thing - and with the same version of both Forge (12.18.2.2099) and RTG (4.1.2.4) - apparently without any problems. I don't really understand FML well enough to be able to tell how, though, and I couldn't find any similar threads on the forums.

 

Can anybody help?

 

Here's the stack trace:

Spoiler

[Client thread/ERROR] [FML]: Caught exception from RTG
java.lang.NoClassDefFoundError: rtg/util/RealisticBiomePresenceTester
	at rtg.RTG.initPost(RTG.java:115) ~[RTG.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:599) ~[forgeSrc-1.10.2-12.18.2.2099.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:239) ~[forgeSrc-1.10.2-12.18.2.2099.jar:?]
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:217) ~[forgeSrc-1.10.2-12.18.2.2099.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:142) [LoadController.class:?]
	at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:795) [Loader.class:?]
	at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:324) [FMLClientHandler.class:?]
	at net.minecraft.client.Minecraft.startGame(Minecraft.java:561) [Minecraft.class:?]
	at net.minecraft.client.Minecraft.run(Minecraft.java:386) [Minecraft.class:?]
	at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
	at GradleStart.main(GradleStart.java:26) [start/:?]
Caused by: java.lang.ClassNotFoundException: rtg.util.RealisticBiomePresenceTester
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 44 more
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: rtg.world.biome.realistic.RealisticBiomeBase
	at org.objectweb.asm.ClassWriter.getCommonSuperClass(ClassWriter.java:1684) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.ClassWriter.getMergedType(ClassWriter.java:1654) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.Frame.merge(Frame.java:1426) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.Frame.merge(Frame.java:1325) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1475) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.commons.LocalVariablesSorter.visitMaxs(LocalVariablesSorter.java:170) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.ClassReader.readCode(ClassReader.java:1554) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1017) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:693) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) ~[asm-debug-all-5.0.3.jar:5.0.3]
	at net.minecraftforge.fml.common.asm.transformers.DeobfuscationTransformer.transform(DeobfuscationTransformer.java:51) ~[forgeSrc-1.10.2-12.18.2.2099.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 44 more

 

Link to comment
Share on other sites

I'm having similar issues with a bunch of other 1.10.2 mods (cofhcore, codechickencore, jei - all downloaded from trustworthy sites), the only one I got running so far is hwyla. I also found, that the mcp conf directory for the deobfuscator doesn't exist on my computer for 1.10.2.  Please help.

Link to comment
Share on other sites

39 minutes ago, grexter said:

I'm having similar issues with a bunch of other 1.10.2 mods (cofhcore, codechickencore, jei - all downloaded from trustworthy sites), the only one I got running so far is hwyla.

I tried a few more mods as well, and got similarly inconsistent results - WorldEdit, for example, crashes with similar errors, but Chisel doesn't. And I can't see what RTG, JEI and WorldEdit have in common that Chisel and HWYLA don't.

 

39 minutes ago, grexter said:

I also found, that the mcp conf directory for the deobfuscator doesn't exist on my computer for 1.10.2.  Please help.

Not sure what you mean by this. Is it part of the same problem? If not, you might be better off starting a new thread for it.

Link to comment
Share on other sites

Building against mods is just the case of getting the deobfuscated (deobf in short) mod file and adding it to the gradle compile configuration.

All files in /libs are added to that configuration automagically as far as I can remember.

 

Not sure about mods with a declared api.

Edited by HashtagShell
type
Link to comment
Share on other sites

Oh, I've got that far - my mod builds fine, and I can even compile it and run it (alongside RTG) in a normal Forge installation without any problems. What I'm having trouble with is getting RTG to run in the deobfuscated development environment. Sorry, I could probably have made that clearer in the first place.

Link to comment
Share on other sites

Beware of core mods (I saw the word  "core" in at least one of the mod names listed above). Forge doesn't play nice with other core mods, so you could still have problems even if you do everything "right".

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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.

Announcements



×
×
  • Create New...

Important Information

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