View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000045 | Industrial-Craft² | crossmod-compatibility / submodules / API | public | 2012-11-05 21:31 | 2012-11-10 11:59 |
Reporter | Myrathi | Assigned To | RichardG | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | won't fix | ||
Platform | Windows | OS | Vista | OS Version | 32-bit |
Summary | 0000045: Crash (RuntimeException) when running/testing client/server from Eclipse | ||||
Description | Prior to 108.71-lf, testing addon-builds that use the IC2 API from within Eclipse worked just fine. As of this release, running the client/server results in a fatal exception (see attached crashlog) and crash due to hard-coding of an obfuscated field-name ("field_82174_bp") that doesn't match the deobfuscated MCP mapping for Forge 354+ ("equipmentDropChances"). | ||||
Steps To Reproduce | 1. Set up MCP+Forge (with my IC2 addon) 2. Put IC2 (deobf) jar into /jars/mods 3. Run Client/Server from Eclipse IDE | ||||
Tags | No tags attached. | ||||
Minecraft Version | |||||
|
IDE client-launch error.txt (4,033 bytes)
--- BEGIN ERROR REPORT c193d6 -------- Generated 05/11/12 20:37 - Minecraft Version: 1.4.2 - Operating System: Windows Vista (x86) version 6.0 - Java Version: 1.6.0_35, Sun Microsystems Inc. - Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Sun Microsystems Inc. - Memory: 982529680 bytes (937 MB) / 1067057152 bytes (1017 MB) up to 1067057152 bytes (1017 MB) - JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M - AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used - FML: MCP v7.19 FML v4.2.18.433 Minecraft Forge 6.0.1.355 5 mods loaded, 5 mods active mcp [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized FML [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized Forge [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized IC2 [IndustrialCraft 2] (industrialcraft-2_1.108.71-lf.jar) Unloaded->Constructed->Pre-initialized->Initialized->Errored ChargePads [@NAME@] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized - LWJGL: 2.4.2 - OpenGL: AMD Radeon HD 7700 Series GL version 4.2.11762 Compatibility Profile Context, ATI Technologies Inc. - Is Modded: Definitely; 'forge,fml' - Type: Client - Texture Pack: Default - Profiler Position: N/A (disabled) - Vec3 Pool Size: ~ERROR~ NullPointerException: null java.lang.RuntimeException: java.lang.NoSuchFieldException: field_82174_bp at ic2.common.IC2.modsLoaded(IC2.java:793) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:440) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300) at com.google.common.eventbus.EventBus.post(EventBus.java:268) at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:140) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:69) at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45) at com.google.common.eventbus.EventBus.dispatch(EventBus.java:317) at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:300) at com.google.common.eventbus.EventBus.post(EventBus.java:268) at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:83) at cpw.mods.fml.common.Loader.initializeMods(Loader.java:654) at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:196) at net.minecraft.client.Minecraft.startGame(Minecraft.java:465) at net.minecraft.client.Minecraft.run(Minecraft.java:752) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NoSuchFieldException: field_82174_bp at java.lang.Class.getDeclaredField(Class.java:1882) at ic2.common.IC2.modsLoaded(IC2.java:790) ... 30 more --- END ERROR REPORT f5ccb9a1 ---------- |
|
Yeah, I get this too. It's worth noting; Minecraft Forge, Build 6.0.1.355 MCP 7.19, updatemcp.bat run. The only method I have found that I can get to work is the following; 1) Set up MCP and install Forge the normal way for Forge development into mcp1 ie; unzip mcp, unzip forge source into mcp dir, install jars, run install.bat in forge dir. 2) Set up a second MCP directory (call it mcp2) 3) copy the contents of the Forge binary jar into mcp2\jars\bin\Minecraft.jar 4) open the ic2 jar and remove the NEI, cg and bc integration folders. This will mean you won't be able to use NEI while testing :( 5) copy the folders containing class files (I'm doing this from memory, don't remember the folder names)) into the mcp2\jars\bin\Minecraft.jar 6) Delete META-INF dir in mcp2\jars\bin\Minecraft.jar. 7) in mcp2\ dir, run decompile.bat 8) take the ic2 folder from the resulting mcp2\src drop it into mcp1\src Fire up eclipse and point it to mcp1\eclipse it will not build because a bunch of classes will refer to SomethingSomething$Foo. 9) Go through all of the ic2 source and fix import statements and class usage where appropriate Miner.java wasn't fixable for me, I had to comment out a chunk of code. Pretty much everything else was just a matter of putting a . instead of $ in the import statements, and removing everything leading up to and including a $ in most cases. This will require some intelligence however, blindly just removing some of it will screw things up. Fixing classes that other classes inherit from will make the ones that inherit suddenly build. So, if you are modifying a class and it won't build and you don't know why, look at what it's inheriting from. Obviously, this gives you decompiled ic2 source code. You shouldn't link your code to the private API. But at least you'll get a rough understanding of how ic2 works. |
|
install proper version of forge... |
|
I only stated 354, above, as that's when the mapping for field_82174_bp was updated. If you check the attachment, you'll see that I -am- using 355, as that's what the forum thread states is required. |
|
Myrathi, how are you deobfuscating the ic2 jar? Are you using BON? |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-11-05 21:31 | Myrathi | New Issue | |
2012-11-05 21:31 | Myrathi | Status | new => assigned |
2012-11-05 21:31 | Myrathi | Assigned To | => RichardG |
2012-11-05 21:31 | Myrathi | File Added: IDE client-launch error.txt | |
2012-11-05 22:06 | matjam | Note Added: 0000089 | |
2012-11-06 01:39 | RawCode | Note Added: 0000091 | |
2012-11-06 03:09 | Myrathi | Note Added: 0000092 | |
2012-11-06 08:13 | matjam | Note Added: 0000095 | |
2012-11-10 11:59 | RichardG | Status | assigned => closed |
2012-11-10 11:59 | RichardG | Resolution | open => won't fix |
2012-11-10 11:59 | RichardG | Fixed in Version | => 1.108 |