You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Eclipse+Forge编译Minecraft模组时出现Cannot find symbol错误

解决Minecraft 1.7.10 Forge模组编译的"找不到符号"错误

我看了你用Eclipse+Forge编译1.7.10模组时碰到的问题,这些编译错误其实都是缺少必要的类导入语句导致的,和库链接关系不大——你代码里用到了Block、Material这些Minecraft/Forge的核心类,但没告诉编译器它们的位置,所以才会一堆"cannot find symbol"报错。

修正后的完整代码

package com.example.examplemod;

// 新增所有必要的导入语句
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod {
    public static final String MODID = "examplemod";
    public static final String VERSION = "1.0";

    @EventHandler
    public void init(FMLInitializationEvent event) {
        Block amethystOre = new ModBlock(Material.rock, "amethystOre");
        GameRegistry.registerBlock(amethystOre, "amethystOre");
    }

    private class ModBlock extends Block {
        public ModBlock(Material material, String blockName) {
            super(material);
            this.setBlockName(blockName);
            this.setBlockTextureName(MODID + ":" + blockName);
            this.setCreativeTab(CreativeTabs.tabBlock);
        }
    }
}

错误原因拆解

你遇到的每一个报错都对应一个缺失的导入:

  • Block类:来自net.minecraft.block.Block
  • Material类:来自net.minecraft.block.material.Material
  • GameRegistry工具类:来自cpw.mods.fml.common.registry.GameRegistry
  • CreativeTabs枚举:来自net.minecraft.creativetab.CreativeTabs

另外那个关于bootstrap class path的警告,是因为你用的Java版本高于1.6(Forge 1.7.10基于Java 1.6开发),可以在Eclipse项目设置里把编译级别改成1.6,或者直接忽略——它不会影响编译成功,只是环境版本不匹配的提示。

实用小技巧

在Eclipse里选中报错的类名(比如Block),按Ctrl + Shift + O就能自动导入所有缺失的类,能省不少手动写导入的功夫。另外记得确认你的Forge环境是正确搭建的:已经运行过gradlew setupDecompWorkspace eclipse,并且Eclipse导入的是正确的项目。

内容的提问来源于stack exchange,提问作者Spitfire972

火山引擎 最新活动