- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试制作一个 Minecraft 模组,它应该能让 bat 掉落生鸡肉。 Minecraft 确实启动并实际打开,但是当它进入compileJava 阶段时,控制台中会显示错误。我对Java的了解很少,所以我不知道如何总结它的内容。
我的问题是这些错误消息意味着什么以及如何纠正它们?
我曾向我的一些同事询问过这个问题,但他们也不知道。
//NOTE TO SELF: Learn to indent.
package net.mcreator.trevcorp_meat_paste;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraft.world.World;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.passive.EntityBat;
public static class GUIRenderEventClass
{@SubscribeEvent
public void playerKilledBat(livingDropsEvent event)
{
if(event.entityLiving instanceof EntityBat)
{
event.drops.clear();
itemStack itemStackToDrop = new itemStack(items.chicken, 1);
event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX,
event.entity.posY, event.entity.posZ, itemStackToDrop));
}
}
}
Minecraft确实打开了,但是当它进入compileJava阶段时,它在控制台中显示以下错误消息:
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:16: error: class GUIRenderEventClass is public, should be declared in a file named GUIRenderEventClass.java
public static class GUIRenderEventClass
^
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:18: error: cannot find symbol
public void playerKilledBat(livingDropsEvent event)
^
symbol: class livingDropsEvent
location: class GUIRenderEventClass
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:24: error: cannot find symbol
itemStack itemStackToDrop = new itemStack(items.chicken, 1);
^
symbol: class itemStack
location: class GUIRenderEventClass
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:24: error: cannot find symbol
itemStack itemStackToDrop = new itemStack(items.chicken, 1);
^
symbol: class itemStack
location: class GUIRenderEventClass
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:24: error: cannot find symbol
itemStack itemStackToDrop = new itemStack(items.chicken, 1);
^
symbol: variable items
location: class GUIRenderEventClass
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:25: error: cannot find symbol
event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX,
^
symbol: class EntityItem
location: class GUIRenderEventClass
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
6 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 8s
最佳答案
第一条错误消息,
class GUIRenderEventClass is public, should be declared in a file named GUIRenderEventClass.java public static class GUIRenderEventClass
表示您的 Java 源代码位于一个文件中,该文件的名称与源代码中的 Java 类名称不匹配。 Java 源文件名和文件中类的 Java 类名必须匹配。这就是 Java 编译器查找事物的方式。
您还有许多相同类型的错误,如下所示:
C:\Users\USER\MCreatorWorkspaces\trevcorp_meat_paste\build\sources\main\java\net\mcreator\trevcorp_meat_paste\MCreatorBatMeat.java:18: error: cannot find symbol public void playerKilledBat(livingDropsEvent event)
这意味着当 Java 编译器处理源代码时,它会发现它不知道的某种符号、类型或名称。这是一个错误,表示 Java 编译器搜索时找不到所指示的符号、类型或名称。
发生这种情况有多种原因。
最常见的情况是包含符号、类型或名称的文件缺少 import
指令。这是涉及类型的“未找到符号”错误的最可能原因。看起来您有几种“找不到符号”的情况,这可能是由于缺少 import
文件造成的,例如:
class LivingDropsEvent
是未找到的符号class itemStack
是未找到的符号class EntityItem
是未找到的符号也没有找到变量items
。我认为它也是一个全局变量,可能也在 import
文件中。
查看 Jabelar 的 Minecraft Forge Modding 教程这篇文章,Minecraft Forge 1.7.2/1.7.10 Changing Drops of Vanilla Entities以及Minecraft Modding: Event Handling ,了解有关这些符号的一些详细信息。
另请查看此 mincraftforge 论坛中的示例代码,https://www.minecraftforge.net/forum/topic/28747-how-to-add-a-drop-to-a-vanilla-mob-1710/其中包含这组 import
指令:
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.boss.EntityWither;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraftforge.common.ChestGenHooks;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
最后你有一些警告:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
这些警告可能重要也可能不重要。如果它们来自您从某个图书馆使用的某个来源,您可能无法解决这些问题。无论这些警告如何,您的应用程序都可以正常运行。
关于java - 任务 ':compileJava' 执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252713/
我在使用以下代码时遇到问题: function http_file_exists($url){ $f=fopen($url,"r"); if($f){ fclose($f); retu
我已经通过 Git 部署到 Azure 几个月了,没有出现重大问题,但现在我似乎遇到了一个无法克服的错误。 我创建了一个新的 Azure 网站,为正在开发的项目创建单独的预览链接。我在新站点上设置了
我已经通过flutter创建了一个App并完成了它,我想在flutter文档中阅读时进行部署。 我收到此错误: FAILURE: Build failed with an exception. * W
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
我正在尝试使用 RapidJSON 解析从服务器接收到的数据。以下是收到的确切字符串: [ { "Node": "9478149a08f9", "Address": "172.17
我尝试为 ios 编译 OpenCV。我总是收到这些错误。我用不同版本的opencv试了一下,结果都是一样的。 我运行这个:python 平台/ios/build_framework.py ios_o
我在一台机器上做基本的发布/订阅,我的客户端是 StackExchange-Redis 的 C# 客户端,我在同一台机器上运行基于 Windows 的 Redis 服务器(服务器版本 2.8.4) 当
我有这段代码,但无法执行,请帮我解决这个问题 连接 connect_error) { die ("connection failed: " . $terhubung->connect_erro
我在 tomcat 上运行并由 maven 编译的 Web 应用程序给出了以下警告和错误。我可以在本地存储库中看到所有 JAR,但有人可以帮忙吗。 WARNING: Failed to scan JA
我正在 Windows 8 上使用 Android Studio 开发一个 android 应用程序,我正在使用一些 native 代码。突然间我无法编译我的 C 文件。当我运行 ndk-build
下面的代码对类和结构的成员进行序列化和反序列化。序列化工作正常,但我在尝试使用 oarch >> BOOST_SERIALIZATION_NVP(outObj); 反序列化时遇到了以下错误; 代码中是
如果我运行此命令“rspec ./spec/requests/api/v1/password_reset_request_spec.rb”,此文件中的所有测试都会通过。 但是,当我运行“rspec”时
我在尝试执行测试以使用 Protractor 上传文件时出错,我的代码是这个 it('it should be possible to upload a file', function() {
System.loadLibrary("nativefaceswap"); 当我运行我的应用程序时,我在 Android Studio 中发现了此类错误。在logcat中显示: java.lang.U
我希望有人能帮助我!使用任何方法或命令行的任何 SSL/HTTPS 调用均无效。 我在 Windows 10 中使用 Ubuntu Server 18.04 作为子系统。我的问题是昨天才开始出现的,因
通过删除这两个值将日期字段从 null=True 和 Blank=True 更改为 required 时,使用 db.alter 命令时遇到问题。 当以下行被注释掉时,迁移运行不会出现问题。
我第一次使用 Heroku 尝试创建应用程序(使用 SendGrid 的 Inbound Parse Webhook"和 Twilio SMS 通过电子邮件发送和接收 SMS 消息)。通过 Virtu
我正在将我的 swift 项目更新到 Xcode 7 上的 Swift 2.0。xcode 在构建项目时报告了以下错误: 命令/Applications/Xcode.app/Contents/Deve
在我的代码中,SSL 库函数 SSL_library_init() 没有按预期返回 1。我如何才能看到它返回了什么错误? 我在 SSL_library_init() 之后调用了 SSL_load_er
我正在尝试运行在以下链接中找到的答案: Asynchronously Load the Contents of a Div 但是当我这样做时,我会遇到我不太理解的错误。 我的代码: $(documen
我是一名优秀的程序员,十分优秀!