Crash with IC2 and IC2 add ons (definitely ic2)

  • Hi. I just started running a test 1.6.2 IC2 world. When I loaded it up, mojang screen said this:

    Display Spoiler

    ---- Minecraft Crash Report ----
    // I blame Dinnerbone.

    Time: 10/13/13 2:29 PM
    Description: There was a severe problem during mod loading that has caused the game to fail

    cpw.mods.fml.common.LoaderException: java.lang.NoSuchFieldError: scrapboxDrops
    at cpw.mods.fml.common.LoadController.transition(LoadController.java:149)
    at cpw.mods.fml.common.Loader.loadMods(Loader.java:521)
    at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:181)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:471)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:806)
    at net.minecraft.client.main.Main.main(SourceFile:101)
    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 net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:18)
    Caused by: java.lang.NoSuchFieldError: scrapboxDrops
    at ic2.core.item.ItemScrapbox.init(ItemScrapbox.java:93)
    at ic2.core.IC2.load(IC2.java:1046)
    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:540)
    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:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
    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:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
    at cpw.mods.fml.common.Loader.loadMods(Loader.java:520)
    ... 10 more


    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------

    -- System Details --
    Details:
    Minecraft Version: 1.6.2
    Operating System: Mac OS X (x86_64) version 10.8.4
    Java Version: 1.6.0_51, Apple Inc.
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Apple Inc.
    Memory: 31613072 bytes (30 MB) / 120188928 bytes (114 MB) up to 1065025536 bytes (1015 MB)
    JVM Flags: 1 total; -Xmx1G
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Suspicious classes: FML and Forge are installed
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v8.04 FML v6.2.62.871 Minecraft Forge 9.10.1.871 9 mods loaded, 9 mods active
    mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized
    FML{6.2.62.871} [Forge Mod Loader] (minecraftforge-9.10.1.871.jar) Unloaded->Constructed->Pre-initialized
    Forge{9.10.1.871} [Minecraft Forge] (minecraftforge-9.10.1.871.jar) Unloaded->Constructed->Pre-initialized
    MFFS{3.2.0} [Modular Force Field System] (MFFS_v3.2.0.205.jar) Unloaded->Constructed->Pre-initialized
    IC2{2.0.239-experimental} [IndustrialCraft 2] (industrialcraft-2_2.0.239-experimental.jar) Unloaded->Constructed->Errored
    ImmibisCore{56.0.5} [Immibis Core] (immibis-core-56.0.5.jar) Unloaded->Constructed->Pre-initialized
    AdvancedMachines{56.0.0} [Advanced Machines] (advanced-machines-56.0.0.jar) Unloaded->Constructed->Errored
    CompactSolars{4.4.13.144} [Compact Solar Arrays] (compactsolars-universal.zip) Unloaded->Constructed->Errored
    gregtech_addon{MC162} [GregTech-Addon] (gregtech.zip) Unloaded->Constructed->Errored

    Thanks! (Using 1.6.2)

  • IC2e need some special form of "broken API" detection:

    1) on mod parseinit (real preloading stage, moment when forge assembled list, checked integrity of classes but not yet inited any mod) engine shoud read some field from class inside API, if field not available or contain invalid data - shoud check classloader data, md5 or CRC of class will also do job but just reading field better.

    2) classloader keep info about source of class, this data can be used to detect source of class.

    with this knowlage IC2e can output:
    mod A incompatable with IC2e remove\update it of GTFO

    i can compile sample mod if anyone interested.