Fabric version is missing fabric-api dependency on fabric.mod.json
davidalb97 opened this issue ยท 7 comments
Launching architectury-api does not show a dependency missing error window for fabric-api.
Minecraft version: 1.17.1
Loader version: 0.11.7;
Architectury-Api version: 2.6.35 (Higher 1.17 versions crash due to missing fabric-loader dependency 0.12.x...)
Possible fixes on fabric.mod.json, for example:
"depends": {
"minecraft": "~1.17.1"
"fabricloader": "\u003e\u003d0.11.6",
"fabric": "*"
}
Crash report:
---- Minecraft Crash Report ----
// Don't do that.
Time: 12/11/21, 10:26 PM
Description: Initializing game
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'architectury'!
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:33)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointClient.start(EntrypointClient.java:33)
at net.minecraft.class_310.<init>(class_310.java:457)
at net.minecraft.client.main.Main.main(Main.java:179)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
Caused by: java.lang.NoClassDefFoundError: net/fabricmc/fabric/api/client/event/lifecycle/v1/ClientLifecycleEvents
at dev.architectury.event.fabric.EventHandlerImpl.registerClient(EventHandlerImpl.java:48)
at dev.architectury.event.EventHandler.registerClient(EventHandler.java)
at dev.architectury.event.EventHandler.init(EventHandler.java:38)
at dev.architectury.utils.fabric.GameInstanceImpl.init(GameInstanceImpl.java:44)
at java.base/java.lang.invoke.MethodHandleProxies$1.invoke(MethodHandleProxies.java:194)
at jdk.proxy2/com.sun.proxy.jdk.proxy2.$Proxy30.onInitialize(Unknown Source)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:47)
... 19 more
Caused by: java.lang.ClassNotFoundException: net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:175)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
... 26 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:33)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointClient.start(EntrypointClient.java:33)
at net.minecraft.class_310.<init>(class_310.java:457)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.main.Main.main(Main.java:179)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
-- System Details --
Details:
Minecraft Version: 1.17.1
Minecraft Version ID: 1.17.1
Operating System: Windows 10 (amd64) version 10.0
Java Version: 16.0.1, AdoptOpenJDK
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), AdoptOpenJDK
Memory: 1881538496 bytes (1794 MiB) / 4294967296 bytes (4096 MiB) up to 4294967296 bytes (4096 MiB)
CPUs: 14
Processor Vendor: AuthenticAMD
Processor Name: AMD Ryzen 9 3900X 12-Core Processor
Identifier: AuthenticAMD Family 23 Model 113 Stepping 0
Microarchitecture: Zen 2
Frequency (GHz): 3.80
Number of physical packages: 1
Number of physical CPUs: 7
Number of logical CPUs: 14
Graphics card #0 name: NVIDIA GeForce GTX 750 Ti
Graphics card #0 vendor: NVIDIA (0x10de)
Graphics card #0 VRAM (MB): 2048.00
Graphics card #0 deviceId: 0x1380
Graphics card #0 versionInfo: DriverVersion=30.0.14.7111
Memory slot #0 capacity (MB): 8192.00
Memory slot #0 clockSpeed (GHz): 0.00
Memory slot #0 type: RAM
Virtual memory max (MB): 14399.44
Virtual memory used (MB): 9053.25
Swap memory total (MB): 6211.00
Swap memory used (MB): 30.41
JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms4096m -Xmx4096m
Launched Version: MultiMC5
Backend library: LWJGL version 3.2.2 build 10
Backend API: NO CONTEXT
Window size: <not initialized>
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages: <disabled>
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Client (map_client.txt)
CPU: <unknown>
Not all mods are as updated to 0.12.x loader, updating the loader to 0.12.x breaks some outdated mods.
Most mods are either in 0.11.x or already updated to 0.12.x and as soon as all mods are compatible with that loader version I'll update it eg: ThatOrThis is currently not compatible with 0.12.x and as I am making a modpack for some friends it's crucial that both mods are included.
I can understand if architectury needs the newer loader for the migration to transitive access wideners.
AFAIK this is intended since all features of Architectury API do not in fact need FAPI (although most do).
However, not using fabric-api causes the crash.
Also, as the fabric-loader dependency is missing from fabric.mod.json's dependency list, the last two versions 1.17.1 also crashes when using 0.11.x loader instead of the required 0.12.x.
As the dependencies are not explicitly stated, the people have to try and guess which version of fabric-api/fabric-loader is required through trial and error.
Oh yeah, it's not actually an optional dep. This is a quick and easy change though, expect a fix soon:tm:
As the dependencies are not explicitly stated, the people have to try and guess which version of fabric-api/fabric-loader is required through trial and error.
The latest versions always work - and you should never used outdated versions of those.
As a side note: Mods that don't work with Loader 0.12 break because they're accessing unsupported internals, so this is really expected to happen.
I as only reporting the missing dependencies, not asking for a loader downgrade.
I understand that eventually some mods will stop getting updated and will be incompatible with future loader versions that offer newer features and break old 'hacky' code.