How to correctly load the javacv library in Minecraft Forge 1.20?

33 Views Asked by At

I want to use javacv dependency in my mod, I build it without any problem, but when the game starts it throws an error,

ava.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.ffmpeg.global.avutil
Stacktrace:
    at java.lang.Class.forName0(Native Method) ~[?:?] {}
    at java.lang.Class.forName(Class.java:467) ~[?:?] {}
    at org.bytedeco.javacpp.Loader.load(Loader.java:1289) ~[isme-1.0.0.jar%23160!/:1.0.0] {re:classloading}
    at org.bytedeco.javacpp.Loader.load(Loader.java:1234) ~[isme-1.0.0.jar%23160!/:1.0.0] {re:classloading}
    at org.bytedeco.javacpp.Loader.load(Loader.java:1210) ~[isme-1.0.0.jar%23160!/:1.0.0] {re:classloading}
    at org.bytedeco.ffmpeg.avformat.Read_packet_Pointer_BytePointer_int.<clinit>(Read_packet_Pointer_BytePointer_int.java:45) ~[isme-1.0.0.jar%23160!/:1.0.0] {re:classloading}
    at org.bytedeco.javacv.FFmpegFrameGrabber.<clinit>(FFmpegFrameGrabber.java:366) ~[isme-1.0.0.jar%23160!/:1.0.0] {re:classloading}

I've tried redirecting, like this:

relocate 'org.bytedeco.ffmpeg', "${project.group}.relocated.ffmpeg" 

but it still doesn't work I used local dependencies to import gradle, because if I use

implementation group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.10'

it will not be able to build due to Windows command line restrictions.

shade files("libs/javacv.jar")
    implementation files("libs/javacv.jar")

    shade files("libs/javacpp.jar")
    implementation files("libs/javacpp.jar")

    shade files("libs/ffmpeg.jar")
    implementation files("libs/ffmpeg.jar")

    shade files("libs/ffmpeg-windows-x86_64.jar")
    implementation files("libs/ffmpeg-windows-x86_64.jar")
0

There are 0 best solutions below