= 创作分享 =
编程开发
求助:添加模组依赖项目后报错
AutomaticEchoes

求助:添加模组依赖项目后报错

AutomaticEchoes 于 2023-8-16 16:37 ( 8月前 ) [复制链接] [只看楼主] [打印]
395 5
本帖最后由 AutomaticEchoes 于 2023-8-16 16:45 编辑

是这样的,我整了个模组A,模组A在开发环境和打包后运行环境都是正常执行的,但是我使用JitPack将Github上的jar包发布,然后在项目B中作为依赖项导入并刷新Gradle,到这一步都很正常,依赖库中也可以看到完整的模组A源码了,但是我测试环境跑模组B的时候报错,说A中的注册对象为空。模组关系我也设置了,问题究竟是在哪呢
发表于 2023-8-16 16:37:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 5 条回复!
AutomaticEchoes
本帖最后由 AutomaticEchoes 于 2023-8-16 16:53 编辑

开发环境forge-1.19-41.10-mdk
模组A的Github地址:AutomaticalEchoes/SimpleAndUnadorned at Base (github.com)
模组B依赖导入方式:
  1. repositories {
  2.                         ...
  3.                         maven { url 'https://jitpack.io' }
  4.                 }
复制代码
  1. implementation 'com.github.AutomaticalEchoes:SimpleAndUnadorned:BASE_1.0'
复制代码
由于A使用了mixin,模组B中Gradle的Run框体下的Client、Server、Test环境都添加了以下 property

  1.             property 'mixin.env.remapRefMap', 'true'
  2.             property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
复制代码

模组B的mods.toml相关设置
  1. [[dependencies.sau_slime]]
  2.     modId="simple_and_unadorned"
  3.     mandatory=true
  4. # This version range declares a minimum of the current minecraft version up to but not including the next major version
  5.     versionRange="[1.0,)"
  6.     ordering="BEFORE"
  7.     side="BOTH"
复制代码


发表于 2023-8-16 16:40:41 | 只看该作者

回复 | 举报

AutomaticEchoes
报错类型一:
  1. [15:17:09] [Render thread/ERROR] [ne.mi.fm.ja.FMLModContainer/LOADING]: Caught exception during event RegisterEvent dispatch for modid simple_and_unadorned
  2. java.lang.NoSuchFieldError: f_22284_
  3.         at com.AutomaticalEchoes.SimpleAndUnadorned.register.EffectsRegister.lambda$static$1(EffectsRegister.java:21) ~[SimpleAndUnadorned-1.0.jar%23185!/:1.0] {re:classloading}
  4.         at net.minecraftforge.registries.DeferredRegister.lambda$addEntries$1(DeferredRegister.java:388) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading}
  5.         at net.minecraftforge.registries.RegisterEvent.register(RegisterEvent.java:59) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading,pl:eventbus:A}
  6.         at net.minecraftforge.registries.DeferredRegister.addEntries(DeferredRegister.java:388) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading}
  7.         at net.minecraftforge.registries.DeferredRegister$EventDispatcher.handleEvent(DeferredRegister.java:330) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading}
  8.         at net.minecraftforge.registries.__EventDispatcher_handleEvent_RegisterEvent.invoke(.dynamic) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading,pl:eventbus:B}
  9.         at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:93) ~[eventbus-6.0.0.jar%23111!/:?] {}
  10.         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-6.0.0.jar%23111!/:?] {}
  11.         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-6.0.0.jar%23111!/:?] {}
  12.         at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:107) ~[javafmllanguage-1.19-41.1.0.jar%23188!/:?] {}
  13.         at net.minecraftforge.fml.ModLoader.lambda$postEventWithWrapInModOrder$35(ModLoader.java:315) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  14.         at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {}
  15.         at net.minecraftforge.fml.ModList.forEachModInOrder(ModList.java:225) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  16.         at net.minecraftforge.fml.ModLoader.postEventWithWrapInModOrder(ModLoader.java:313) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  17.         at net.minecraftforge.registries.GameData.postRegisterEvents(GameData.java:323) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading}
  18.         at net.minecraftforge.common.ForgeStatesProvider.lambda$new$4(ForgeStatesProvider.java:25) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading}
  19.         at net.minecraftforge.fml.ModLoader.lambda$dispatchAndHandleError$23(ModLoader.java:207) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  20.         at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {}
  21.         at net.minecraftforge.fml.ModLoader.dispatchAndHandleError(ModLoader.java:207) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  22.         at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$14(ModLoader.java:185) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  23.         at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {}
  24.         at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:185) ~[fmlcore-1.19-41.1.0.jar%23191!/:?] {}
  25.         at net.minecraftforge.client.loading.ClientModLoader.lambda$begin$1(ClientModLoader.java:91) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading,pl:runtimedistcleaner:A}
  26.         at net.minecraftforge.client.loading.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:111) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading,pl:runtimedistcleaner:A}
  27.         at net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java:91) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23186%23193!/:?] {re:classloading,pl:runtimedistcleaner:A}
  28.         at net.minecraft.client.Minecraft.<init>(Minecraft.java:454) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23187!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
  29.         at net.minecraft.client.main.Main.main(Main.java:170) ~[forge-1.19-41.1.0_mapped_official_1.19-recomp.jar%23187!/:?] {re:classloading,pl:runtimedistcleaner:A}
  30.         at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
  31.         at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
  32.         at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
  33.         at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
  34.         at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.lambda$launchService$0(ForgeClientUserdevLaunchHandler.java:25) ~[fmlloader-1.19-41.1.0.jar%23100!/:?] {}
  35.         at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.9.jar%23112!/:?] {}
  36.         at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.9.jar%23112!/:?] {}
  37.         at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.9.jar%23112!/:?] {}
  38.         at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) [modlauncher-10.0.9.jar%23112!/:?] {}
  39.         at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) [modlauncher-10.0.9.jar%23112!/:?] {}
  40.         at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.9.jar%23112!/:?] {}
  41.         at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.9.jar%23112!/:?] {}
  42.         at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] {}
复制代码
报错指向地址:
  1.   public static final RegistryObject<EntityType<AcidityBall>> ACIDITY = REGISTER.register("acidity",
  2.             () -> EntityType.Builder.of(AcidityBall::Create,MobCategory.MISC).sized(0.5F,0.5F)//这一行 找不到builder方法
  3.                     .build("acidity"));
复制代码
说是类型一是因为其他注册器也有类似报错 都是注册器的第一个注册项就有问题 不出意外就是整个注册器都有问题
发表于 2023-8-16 17:02:05 | 只看该作者

回复 | 举报

AutomaticEchoes
对比报错信息和实际代码:
  1. java.lang.NoSuchMethodError: 'net.minecraft.world.item.Item$Properties net.minecraft.world.item.Item$Properties.m_41491_(net.minecraft.world.item.CreativeModeTab)
复制代码
  1.    return new Item.Properties().tab(SimpleAndUnadorned.SIMPLE_AND_UNADORNED_TAB) ;
复制代码
发现字节码问题 Item.Properties().tab 与  Item$Properties.m_41491_ 也就是tab方法源码中的字节码可能不等于m_41491_
我个人初步判断模组b导入依赖下载模组A后,反编译出问题了 导致源码执行时定位到不存在的方法


发表于 2023-8-16 17:26:54 | 只看该作者

回复 | 举报

AutomaticEchoes
救救孩子啊 整麻了
发表于 2023-8-17 22:18:48 | 只看该作者

回复 | 举报

墨靈(墨白言靈)
把implementation ("<依赖>")改成implementation fg.deobf("<依赖>")试试……?
斗轉星移,空間扭曲。
星域之幻,皆爲虛惘。
世界碩大,宇宙無垠。
曆練之途,永無終日。
萬物從法,魂歸太巟。
勿由此落,待生輪回!
发表于 2023-8-23 04:49:53 | 只看该作者

回复 | 举报

百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表