Jump to content
  • Home
  • Files
  • Docs
  • Merch
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [SOLVED][1.8] With built JAR, it crashes with NoClassDefFoundError
1.13 Update Notes for Mod Creators
Sign in to follow this  
Followers 0
jabelar

[SOLVED][1.8] With built JAR, it crashes with NoClassDefFoundError

By jabelar, March 2, 2015 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

My mod runs great in Eclipse, but if I gradlew build and then use the resulting JAR in the actual Minecraft install it crashes.

 

Using the new launcher, I can play vanilla 1.8 okay, and I can play Forge 1.8 okay (suing profile for fml-1.8-8.0.20.1023) okay.  But if I put my JAR in the mods folder it crashes with the following exception.  I don't find the console messages that helpful, as it just mentions a NoClassDefFoundError for a class that works fine when running from Eclipse and then gives trace to fairly general classloader methods.

 

 

java.lang.NoClassDefFoundError: com/blogspot/jabelarminecraft/magicbeans/items/ItemMagicBeans

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:344)

at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:422)

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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 net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)

at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187)

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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 net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118)

at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:493)

at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:208)

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

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

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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

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

Caused by: java.lang.ClassNotFoundException: com.blogspot.jabelarminecraft.magicbeans.items.ItemMagicBeans

at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 35 more

Caused by: java.lang.NoClassDefFoundError: com/blogspot/jabelarminecraft/magicbeans/items/ItemSeedFoodMagicBeans

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:760)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)

... 37 more

Caused by: java.lang.ClassNotFoundException: com.blogspot.jabelarminecraft.magicbeans.items.ItemSeedFoodMagicBeans

at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 41 more

 

 

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

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:344)

at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:422)

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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 net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)

at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187)

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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 net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118)

at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:493)

at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:208)

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

 

-- Initialization --

Details:

Stacktrace:

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

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

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

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

 

-- System Details --

Details:

Minecraft Version: 1.8

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.8.0_25, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 369586352 bytes (352 MB) / 609746944 bytes (581 MB) up to 3817865216 bytes (3641 MB)

JVM Flags: 2 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

FML: MCP v9.10 FML v8.0.20.1023 3 mods loaded, 3 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed

FML{8.0.20.1023} [Forge Mod Loader] (fml-1.8-8.0.20.1023-1.8.jar) Unloaded->Constructed

magicbeans{1.0.0} [Magic Beans] (magicbeans-1.8-1.0.0.jar) Unloaded

Launched Version: 1.8-FML8.0.20.1023-1.8

LWJGL: 2.9.1

OpenGL: GeForce GTX 760/PCIe/SSE2 GL version 4.5.0 NVIDIA 347.52, NVIDIA Corporation

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: No

Is Modded: Definitely; Client brand changed to 'fml'

Type: Client (map_client.txt)

Resource Packs: []

Current Language: English (US)

Profiler Position: N/A (disabled)

 

  • Quote

Share this post


Link to post
Share on other sites

Draco18s    2093

Draco18s

Draco18s    2093

  • Reality Controller
  • Draco18s
  • Members
  • 2093
  • 14025 posts
Posted March 2, 2015

Question:

 

Why are you accessing that class with reflection and not wrapping it in a try...catch?

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

Question:

 

Why are you accessing that class with reflection and not wrapping it in a try...catch?

 

I'm not using reflection at all in this mod.

  • Quote

Share this post


Link to post
Share on other sites

Draco18s    2093

Draco18s

Draco18s    2093

  • Reality Controller
  • Draco18s
  • Members
  • 2093
  • 14025 posts
Posted March 2, 2015

Ok, show your main mod file, as some aspect of your @mod annotation is fucked up

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

main mod file:

 

/**

    Copyright © 2014 by jabelar

*/

 

package com.blogspot.jabelarminecraft.magicbeans;

 

import java.io.File;

 

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.item.Item;

import net.minecraft.item.ItemArmor;

import net.minecraft.item.ItemArmor.ArmorMaterial;

import net.minecraft.util.EnumChatFormatting;

import net.minecraftforge.common.config.Configuration;

import net.minecraftforge.common.util.EnumHelper;

import net.minecraftforge.fml.common.Mod;

import net.minecraftforge.fml.common.Mod.EventHandler;

import net.minecraftforge.fml.common.Mod.Instance;

import net.minecraftforge.fml.common.SidedProxy;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;

import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;

import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent;

import net.minecraftforge.fml.common.event.FMLServerStartedEvent;

import net.minecraftforge.fml.common.event.FMLServerStartingEvent;

import net.minecraftforge.fml.common.event.FMLServerStoppedEvent;

import net.minecraftforge.fml.common.event.FMLServerStoppingEvent;

import net.minecraftforge.fml.common.network.FMLEventChannel;

import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;

 

import com.blogspot.jabelarminecraft.magicbeans.armor.ItemArmorSafeFalling;

import com.blogspot.jabelarminecraft.magicbeans.blocks.BlockCloud;

import com.blogspot.jabelarminecraft.magicbeans.blocks.BlockMagicBeanStalk;

import com.blogspot.jabelarminecraft.magicbeans.blocks.BlockSimple;

import com.blogspot.jabelarminecraft.magicbeans.items.ItemGoldenEgg;

import com.blogspot.jabelarminecraft.magicbeans.items.ItemGoldenGooseMeat;

import com.blogspot.jabelarminecraft.magicbeans.items.ItemMagicBeans;

import com.blogspot.jabelarminecraft.magicbeans.items.MagicBeansMonsterPlacer;

import com.blogspot.jabelarminecraft.magicbeans.materials.MaterialCloud;

import com.blogspot.jabelarminecraft.magicbeans.proxy.CommonProxy;

import com.blogspot.jabelarminecraft.magicbeans.structures.StructureCastleTalia;

 

@Mod(modid =

      MagicBeans.MODID,

      name = MagicBeans.MODNAME,

      version = MagicBeans.MODVERSION,

      guiFactory = "com.blogspot.jabelarminecraft."+MagicBeans.MODID+".gui.GuiFactoryMagicBeans")

public class MagicBeans

{

    public static final String MODID = "magicbeans";

    public static final String MODNAME = "Magic Beans";

    public static final String MODVERSION = "1.0.0";

    public static final String MODDESCRIPTION = "Start the adventure by feeding a golden carrot to a grown-up cow.";

    public static final String MODAUTHOR = "jabelar";

    public static final String MODCREDITS = "Taliaailat, Jnaejnae";

    public static final String MODURL = "www.jabelarminecraft.blogspot.com";

    public static final String MODLOGO = "jackandbeanstalk.png";

 

    // this is tag used for sub-compound in extended properties and packet syncing

public final static String EXT_PROPS_NAME = "extendedPropertiesMagicBeans";

 

// use a named channel to identify packets related to this mod

    public static final String NETWORK_CHANNEL_NAME = "MagicBeans";

public static FMLEventChannel channel;

// networking

public static SimpleNetworkWrapper network;

 

    // set up configuration properties (will be read from config file in preInit)

    public static File configFile;

    public static Configuration config;

    public static Boolean configGiantIsHostile = true;

    public static int configGoldForBeans = 100;

    public static int configGiantHealth = 10;

public static boolean configGiantCanRegen = true;

    public static int configGiantAttackDamage = 4;

    public static double configChanceCowIsMagic = 0.1D;

public static int configMaxStalkHeight = 136;

public static int configTicksPerGrowStage = 20;

public static int configTimeUntilNextEgg = 900;

   

    // instantiate materials

    public final static Material materialCloud = new MaterialCloud();

    // see custom armor tutorial at: http://bedrockminer.jimdo.com/modding-tutorials/basic-modding/custom-armor/

    public final static ArmorMaterial SAFEFALLINGLEATHER = EnumHelper.addArmorMaterial("SAFEFALLINGLEATHER", "safe_falling", 5, new int[]{2, 6, 5, 2}, 15);

   

    // instantiate blocks

    // need to instantiate beanstalk block before item as the item constructor associates with block

    public final static Block blockMagicBeanStalk = new BlockMagicBeanStalk();

public final static Block blockCloud = new BlockCloud();

    public final static Block blockSimple = new BlockSimple().setUnlocalizedName("mbe01_block_simple");

 

    // instantiate items

// important to do this after blocks where item is associate with custom block

    public final static ItemGoldenEgg itemGoldenEgg = new ItemGoldenEgg();

    public final static Item magicBeans = new ItemMagicBeans();

    public final static ItemArmor bootsOfSafeFalling = new ItemArmorSafeFalling("boots_safe_falling", SAFEFALLINGLEATHER, 3);

    public final static ItemGoldenGooseMeat goldenGooseMeat = new ItemGoldenGooseMeat(4, 1.2F, false);

   

    public final static MagicBeansMonsterPlacer spawnFamilyCow = new MagicBeansMonsterPlacer("family_cow",  0x4EF56D, 0xFCFC03);

    public final static MagicBeansMonsterPlacer spawnGiant = new MagicBeansMonsterPlacer("giant", 0xDB9112, 0x0AC798);

    public final static MagicBeansMonsterPlacer spawnMysteriousStranger = new MagicBeansMonsterPlacer("mysterious_stranger", 0x8C6620, 0xA100B3);

 

    // instantiate structures

    // important to do this after blocks in case structure uses custom block

    public final static StructureCastleTalia structureCastleTalia = new StructureCastleTalia();

   

    // instantiate the mod

    @Instance(MODID)

   

    public static MagicBeans instance;

   

    // create custom creativetab for mod items

    //public static CreativeTabs tabMagicBeansPlus = new MagicBeansCreativeTab("MagicBeans");

   

    // instantiate blocks

    //public final static Block blockTomato = new BlockTomato();

 

    // instantiate items

    //public final static Item tomato = new ItemTomato();

   

    // Says where the client and server 'proxy' code is loaded.

    @SidedProxy(clientSide="com.blogspot.jabelarminecraft.magicbeans.proxy.ClientProxy", serverSide="com.blogspot.jabelarminecraft.magicbeans.proxy.CommonProxy")

    public static CommonProxy proxy;

   

    // Version checking instance

public static VersionChecker versionChecker;

public static boolean haveWarnedVersionOutOfDate = false;

           

    @EventHandler

    // preInit "Run before anything else. Read your config, create blocks, items, etc, and register them with the GameRegistry."

    public void fmlLifeCycleEvent(FMLPreInitializationEvent event)

    { 

        // DEBUG

        System.out.println("preInit()"+event.getModMetadata().name);

               

        // hard-code mod information so don't need mcmod.info file

        event.getModMetadata().autogenerated = false ; // stops it from complaining about missing mcmod.info

        event.getModMetadata().credits = EnumChatFormatting.BLUE+MODCREDITS;

        event.getModMetadata().authorList.add(EnumChatFormatting.RED+MODAUTHOR);

        event.getModMetadata().description = EnumChatFormatting.YELLOW+MODDESCRIPTION;

        event.getModMetadata().url = MODURL;

        event.getModMetadata().logoFile = MODLOGO;

       

        proxy.fmlLifeCycleEvent(event);

    }

 

@EventHandler

    // Do your mod setup. Build whatever data structures you care about. Register recipes."

    // Register network handlers

    public void fmlLifeCycleEvent(FMLInitializationEvent event)

    {

   

        // DEBUG

        System.out.println("init()");

       

        proxy.fmlLifeCycleEvent(event);

    }

 

@EventHandler

    // postInit "Handle interaction with other mods, complete your setup based on this."

    public void fmlLifeCycle(FMLPostInitializationEvent event)

{

        // DEBUG

        System.out.println("postInit()");

       

        proxy.fmlLifeCycleEvent(event);

    }

 

@EventHandler

public void fmlLifeCycle(FMLServerAboutToStartEvent event)

{

        // DEBUG

        System.out.println("Server about to start");

       

proxy.fmlLifeCycleEvent(event);

}

 

@EventHandler

// register server commands

// refer to tutorial at http://www.minecraftforge.net/wiki/Server_Command#Mod_Implementation

public void fmlLifeCycle(FMLServerStartingEvent event)

{

        // DEBUG

        System.out.println("Server starting");

       

proxy.fmlLifeCycleEvent(event);

}

 

@EventHandler

public void fmlLifeCycle(FMLServerStartedEvent event)

{

        // DEBUG

        System.out.println("Server started");

       

proxy.fmlLifeCycleEvent(event);

}

 

@EventHandler

public void fmlLifeCycle(FMLServerStoppingEvent event)

{

        // DEBUG

        System.out.println("Server stopping");

       

proxy.fmlLifeCycleEvent(event);

}

 

@EventHandler

public void fmlLifeCycle(FMLServerStoppedEvent event)

{

        // DEBUG

        System.out.println("Server stopped");

       

proxy.fmlLifeCycleEvent(event);

}

 

}

 

 

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

Also, the class mentioned com/blogspot/jabelarminecraft/magicbeans/items/ItemMagicBeans is in the JAR:

 

width=800 height=200WYg50rY.png?1 [/img]

  • Quote

Share this post


Link to post
Share on other sites

Draco18s    2093

Draco18s

Draco18s    2093

  • Reality Controller
  • Draco18s
  • Members
  • 2093
  • 14025 posts
Posted March 2, 2015

Show the ItemMagicBeans class

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

Show the ItemMagicBeans class

 

You're welcome to look at the whole codebase here: https://github.com/jabelar/MagicBeans-1.8fixed

 

Here is the ItemMagicBeans class.  Nothing special:

package com.blogspot.jabelarminecraft.magicbeans.items;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;

import com.blogspot.jabelarminecraft.magicbeans.MagicBeans;
import com.blogspot.jabelarminecraft.magicbeans.utilities.MagicBeansUtilities;

public class ItemMagicBeans extends ItemSeedFoodMagicBeans 
{
    private static final ItemStack p_77653_1_ = null;

public ItemMagicBeans() 
    {
        super(1, 0.3F, MagicBeans.blockMagicBeanStalk);
        setUnlocalizedName("magicbeans");
        setCreativeTab(CreativeTabs.tabMaterials);
    }
    
    @Override
    public String getItemStackDisplayName(ItemStack parItemStack) 
    {
        return (MagicBeansUtilities.stringToRainbow(StatCollector.translateToLocal(getUnlocalizedNameInefficiently(p_77653_1_) + ".name")).trim());
    }
}

 

Also note that this mod works when running from Eclipse.  I think the NoClassDef error can be related to class path problems, but I don't really know what exactly would be wrong.

  • Quote

Share this post


Link to post
Share on other sites

Draco18s    2093

Draco18s

Draco18s    2093

  • Reality Controller
  • Draco18s
  • Members
  • 2093
  • 14025 posts
Posted March 2, 2015

Question:

What the hell is p_77653_1_, why does it have an obfuscated name, and why the hell are you using it to store a string, and why the hell is it always null?

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

Question:

What the hell is p_77653_1_, why does it have an obfuscated name, and why the hell are you using it to store a string, and why the hell is it always null?

 

I'm in process of updating my game to 1.8, so there is still some cleanup to do.  That field was just the unlocalized name really, but I was doing some conditional stuff on it (wouldn't always just be name of the item) so didn't want to mess with actual unlocalized name.  Anyway, I removed that and the NoClassDef problem remains.  (Note I really don't think a problem with some string field could be cause of NoClassDef problem for loader, but I appreciate you pointing this field out.)

 

Class now looks like:

 

package com.blogspot.jabelarminecraft.magicbeans.items;

 

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.item.ItemStack;

import net.minecraft.util.StatCollector;

 

import com.blogspot.jabelarminecraft.magicbeans.MagicBeans;

import com.blogspot.jabelarminecraft.magicbeans.utilities.MagicBeansUtilities;

 

public class ItemMagicBeans extends ItemSeedFoodMagicBeans

{

public ItemMagicBeans()

    {

        super(1, 0.3F, MagicBeans.blockMagicBeanStalk);

        setUnlocalizedName("magicbeans");

        setCreativeTab(CreativeTabs.tabMaterials);

    }

   

    @Override

    public String getItemStackDisplayName(ItemStack parItemStack)

    {

        return (MagicBeansUtilities.stringToRainbow(StatCollector.translateToLocal(getUnlocalizedNameInefficiently(new ItemStack(this)) + ".name")).trim());

    }

}

 

 

Note I was also suspicious of the StatCollector class, so I tried the ItemMagicBeans with a simple return ("Magic Beans") and it also fails with NoClassDef error.

  • Quote

Share this post


Link to post
Share on other sites

jabelar    591

jabelar

jabelar    591

  • Reality Controller
  • jabelar
  • Members
  • 591
  • 3266 posts
Posted March 2, 2015

Okay, I think I solved it.  At least I got it working on a different computer just fine.  I think I used the same installer, but some reason on the original computer, the launcher profile references fml-1.8-8.0.20.1023 but with the working computer I just tried the profile references 1.8-Forge11.14.1.1333.

 

Anyway, that explains it -- mismatch with the profile.

  • Quote

Share this post


Link to post
Share on other sites

Draco18s    2093

Draco18s

Draco18s    2093

  • Reality Controller
  • Draco18s
  • Members
  • 2093
  • 14025 posts
Posted March 2, 2015

Why aren't you using the provided item stack and instead creating a new one?

 

    @Override

    public String getItemStackDisplayName(ItemStack parItemStack)

    {

        return (MagicBeansUtilities.stringToRainbow(StatCollector.translateToLocal(getUnlocalizedNameInefficiently(new ItemStack(this)) + ".name")).trim());

    }

  • Quote

Share this post


Link to post
Share on other sites

timotheteus    0

timotheteus

timotheteus    0

  • Tree Puncher
  • timotheteus
  • Members
  • 0
  • 1 post
Posted October 24, 2017

To anyone, who has got the same problem, NoClassDef when running minecraft with exported jar (in environment everything works), I did an inspection in Intellij and found the SideOnly missing from GuiHandler and Keyhandler. You might have different "hidden" problems, just use the inspection.

  • Quote

Share this post


Link to post
Share on other sites

jeffryfisher    182

jeffryfisher

jeffryfisher    182

  • World Shaper
  • jeffryfisher
  • Members
  • 182
  • 1283 posts
Posted October 26, 2017 (edited)

Most modders who raise NoClassDefFoundError when going from Eclipse to jar have made a different (and simple) mistake:  They used Eclipse's export command to build their jars (Jabelar is an experienced modder who did use gradlew build, so that wasn't the problem this time).

 

Without gradle, a mod that works in Eclipse will turn into a jar that fails in a mod folder. This is because Eclipse's export does not reobfuscate class names (or not correctly). The pretty class names we use in the editor will not be found in production-released Minecraft, hence the NoClassDefFoundError <-- EDIT: Oops, method not found errors, my bad.

 

Therefore, most modders finding this thread need to learn this:

Modders must use gradle to make their jars so that the reobfuscation is done correctly.

 

Edited October 27, 2017 by jeffryfisher
Oops, corrected
  • Quote

Share this post


Link to post
Share on other sites

Choonster    1624

Choonster

Choonster    1624

  • Reality Controller
  • Choonster
  • Forge Modder
  • 1624
  • 5050 posts
Posted October 26, 2017

The MCP to SRG obfuscation performed by the build Gradle task only changes field and method names, class names are always the same between MCP and SRG.

 

This means that NoClassDefFoundError can't be caused by lack of reobfuscation.

 

Usually it's caused by accessing a client-only class from code that runs on the dedicated server. 

  • Like 1
  • Quote

Share this post


Link to post
Share on other sites

jeffryfisher    182

jeffryfisher

jeffryfisher    182

  • World Shaper
  • jeffryfisher
  • Members
  • 182
  • 1283 posts
Posted October 27, 2017

Thanks for the clarification; I hadn't paid attention to different kinds of names being treated differently.

  • Quote

Share this post


Link to post
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

  • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 0
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • salvestrom
      [1.14.4] How to get Minecraft Horse model/texture to make a custom unicorn?

      By salvestrom · Posted 6 minutes ago

      ModelUnicorn should extend ModelHorse. Everything else you want will come from your UnicornEntity class extending EntityHorse.
    • mindstorm3223
      1.12.2-Problem with tile entity custom crafting table

      By mindstorm3223 · Posted 12 minutes ago

      Sorry, I looked around and couldn't figure out how to do that, do you know of any good place where it can tell me how to?
    • Jaffaaaaa
      ScreenGui does nothing

      By Jaffaaaaa · Posted 13 minutes ago

      I'm trying to make a gui to edit values and settings using a command, but the gui just does nothing apart from showing me the "init gui" message I put i the initGui() method. package xyz.jaffaaaa.zealotmanager; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ChatComponentText; public class GuiHandler extends GuiScreen { private GuiButton reset; private ZealotManager zm; public GuiHandler(ZealotManager zm) { this.zm=zm; } @Override public void initGui() { super.initGui(); this.buttonList.clear(); Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("init gui")); this.buttonList.add(reset = new GuiButton(0, this.width / 2 - 100, this.height / 2, "Reset Counters")); } @Override protected void actionPerformed(GuiButton button) { if (button == reset) { zm.counter.zealotsSinceLastEye = 0; zm.counter.totalEyes = 0; zm.counter.totalZealots = 0; } } @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { super.drawScreen(mouseX, mouseY, partialTicks); drawDefaultBackground(); } }  
    • Yanny7
      [1.14.4] Stone Age mod

      By Yanny7 · Posted 14 minutes ago

      Stone age is minecraft 1.14.4 mod that gives you feeling of man from stone age. No more magically created planks from wood logs, the way to first crafting table is long and dangerous. In prehistoric ages, animals was not domesticated and same apply to this mod. There are no cows/sheeps/pigs/chickens, but their ancestors aurochs/mouflons/boars/fowls which are quit upset when you attack them or their friends. For more information, see wiki. Found bug? Please report here. This mod depends on Ages api.   Suggestions? New ides? Code comments? Just comment or PM me    
    • ShyAlpha22
      More Player Models won't change character

      By ShyAlpha22 · Posted 33 minutes ago

      I have been having this problem for quite some time with the 1.12.2 versions of More Player Models. Whenever I change anything with my character it doesn't actually change, for example, I changed the size and my view changed but my character remained the same size. Animations and movements also don't work, once again if I try to sit it changes my view, but my character is just standing with their feet slightly in the ground. I am using other mods with this, but not anything I think would affect it. The mods are:   chiselsandbits-14.33 CMDCam_v1.4.4_mc1.12.2 CreativeCore_v1.9.66_mc1.12.2 CutsomNPCs_1.12.2-(01Oct19) Decocraft-2.6.3_1.12.2 DoggyTalents-1.12.2-1.15.1.4-universal mclib-1.0.3-1.12.2 MorePlayerModels_1.12.2-(05Dec19) pa1.10 PTRLib-1.0.4   Any help would be appreciated, thank you.
  • Topics

    • DragonITA
      25
      [1.14.4] How to get Minecraft Horse model/texture to make a custom unicorn?

      By DragonITA
      Started Monday at 10:06 AM

    • mindstorm3223
      2
      1.12.2-Problem with tile entity custom crafting table

      By mindstorm3223
      Started Yesterday at 02:18 AM

    • Jaffaaaaa
      0
      ScreenGui does nothing

      By Jaffaaaaa
      Started 13 minutes ago

    • Yanny7
      0
      [1.14.4] Stone Age mod

      By Yanny7
      Started 15 minutes ago

    • ShyAlpha22
      0
      More Player Models won't change character

      By ShyAlpha22
      Started 33 minutes ago

  • Who's Online (See full list)

    • moronwmachinegun
    • Jaffaaaaa
    • XD_Claassen_XD
    • loordgek
    • lucidagrande
    • Yanny7
    • salvestrom
    • EmerProd
    • fenekvert
    • Pyre540
    • DcZipPL
    • DaemonUmbra
    • mindstorm3223
    • matorassan
    • diesieben07
    • D4Rk
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [SOLVED][1.8] With built JAR, it crashes with NoClassDefFoundError
  • Theme
  • Contact Us
  • Discord

Copyright © 2019 ForgeDevelopment LLC · Ads by Curse Powered by Invision Community