Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

568
Views
java.lang.NoClassDefFoundError: no se pudo inicializar la clase org.bytedeco.javacpp.avutil

Estoy usando Windows10, eclipse-neon con la versión JDK1.8, obtengo la siguiente excepción.

 Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.bytedeco.javacpp.Loader.load(Loader.java:385) at org.bytedeco.javacpp.Loader.load(Loader.java:353) at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2719) at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) at com.segment.processor.AudioMain.main(ApacheMathAudioMain.java:20) Error getting static method ID of org/bytedeco/javacpp/Loader/putMemberOffset

aquí están las dependencias que estoy usando en mi pom.xml

 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>ffmpeg</artifactId> <version>3.0.2-1.2</version> </dependency> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>opencv</artifactId> <version>3.1.0-1.2</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacpp</artifactId> <version>0.10</version> </dependency>
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

primer problema

Tus versiones no coinciden. org.bytedeco.javacpp en la versión 0.10 es de diciembre de 2014 , mientras que todas las demás versiones son de mayo de 2016 . Debe usar la versión 1.2 de org.bytedeco.javacpp o, mejor aún, actualizar todas las dependencias a la última versión.

Puedes ver las versiones aquí:

org.bytedeco.javacpp-presets » opencv

org.bytedeco.javacpp-presets » ffmpeg

org.bytedeco » javacv

org.bytedeco » javacpp

segundo problema

Incluye las dependencias solo para el código Java, pero no incluye las dependencias para el código nativo (tanto opencv como ffmpeg son bibliotecas nativas). Debe incluir opencv-platform y ffmpeg-platform en su lugar:

 <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacpp</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>opencv-platform</artifactId> <version>3.4.1-1.4.1</version> </dependency> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>ffmpeg-platform</artifactId> <version>3.4.2-1.4.1</version> </dependency>

Esto hará que Maven descargue e incluya bibliotecas opencv y ffmpeg para Android, Linux, MacOS y Windows, tanto x86 como x64.

about 4 years ago · Santiago Trujillo Report

0

java.lang.NoClassDefFoundError: no se pudo inicializar la clase org.bytedeco.javacpp.avutil

La causa real del error son las diferentes versiones de las dependencias. Es por eso que el paquete javacpp falló durante el mapeo de clases.

Siga estos pasos para resolver este problema:

  • Descargue la última versión del paquete de la biblioteca Javacv desde aquí
  • Copie estos tres archivos .jar en la carpeta libs

    • ffmpeg.jar
    • javacv.jar
    • javacpp.jar
  • Crear carpeta jniLibs en app\src\main

  • Ahora, cree cuatro carpetas diferentes para diferentes arquitecturas

    • arm64-v8a
    • armeabi
    • armeabi-v7a
    • x86
  • Cambie la extensión de estos dos archivos ffmpeg-android-arm.jar, ffmpeg-android-x86.jar a .zip , luego descomprima ambas carpetas y copie los archivos .so para cada arquitectura y péguelos en su directorio respectivo. Su directorio resultante debería verse así

  • elemento de la lista

  • Agregue dependencias .jar en su archivo gradle de la siguiente manera:

     implementation files('libs/ffmpeg.jar') implementation files('libs/javacpp.jar') implementation files('libs/javacv.jar')```

Gracias por leer :)

about 4 years ago · Santiago Trujillo Report

0

Intente actualizar las dependencias con las últimas versiones y verifique si la clase existe o no.

https://mvnrepository.com/artifact/org.bytedeco/javacv/1.4.1 https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg/3.4.2-1.4.1 https:// mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv/3.4.1-1.4.1

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!