2014-09-04 8 views
5

여기에는 비슷한 질문이 많이 있지만 대부분 JavaCV와 같은 라이브러리의 개발로 인해 오래된 것 같습니다.Android Studio의 JavaCV 구성

Video Creation with Images and Audio in Android 코드를 사용하여 동영상을 만들었지 만 lib 가져 오기에 문제가 있습니다.

compile group: 'org.bytedeco', name: 'javacv', version: '0.9' 

을 지금은 다른 일을해야하는 경우, 나도 몰라 :

나는 JavaCV 페이지 내가 Gradle을에 의존성을 넣어 말하는 것처럼나요?

나는이 수입 사용하고 있습니다 :

import org.bytedeco.javacpp.avcodec; 
import org.bytedeco.javacpp.opencv_core.IplImage; 
import org.bytedeco.javacv.FFmpegFrameRecorder; 

import static org.bytedeco.javacpp.opencv_highgui.cvLoadImage; 

을이 오류 얻을 :

Caused by: java.lang.NoClassDefFoundError: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil 
     at org.bytedeco.javacpp.Loader.load(Loader.java:387) 
     at org.bytedeco.javacpp.Loader.load(Loader.java:353) 
     at org.bytedeco.javacpp.avformat.<clinit>(avformat.java:13) 
     at org.bytedeco.javacv.FFmpegFrameRecorder.<clinit>(FFmpegFrameRecorder.java:106) 
     at voidstudio.app.activity.CreateMovieTask.doInBackground(CreateMovieTask.java:46) 
     at voidstudio.app.activity.CreateMovieTask.doInBackground(CreateMovieTask.java:21) 

Caused by: java.lang.ClassNotFoundException: org.bytedeco.javacpp.avutil 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:217) 

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load jniavutil from loader dalvik.system.PathClassLoader[dexPath=/data/app/voidstudio.app-1.apk,libraryPath=/data/app-lib/voidstudio.app-1]: findLibrary returned null 
     at java.lang.Runtime.loadLibrary(Runtime.java:365) 
     at java.lang.System.loadLibrary(System.java:521) 
     at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535) 
     at org.bytedeco.javacpp.Loader.load(Loader.java:410) 

설정에서 sth를 놓쳤습니까? 나는 비슷한 질문을 보았지만 이에 대한 적절한 대답은 없었습니다.

+0

동일한 문제가 있습니다. 해결 방법을 찾았습니까? – Yourange

+0

아니, 어쩌면이 문제는 JavaCV의 새 버전 –

답변

2

점검 jniLibs 폴더

의 위치가 난 그냥 내 jniLibs의 위치를 ​​변경 (이 기본 폴더 외부 전에)이이 image을 확인하시기 바랍니다 나를 위해 일한! 이 도움이되기를 바랍니다

7

업데이트! 또한 jniLibs에 armeabi-v7a 폴더가 있거나 armeabi 폴더 이외의 다른 것을 사용하고 있다면 추가되지 않는 .so 파일에 문제가 있음을 알았습니다.

ffmpeg를 가져 오지 않는 것 같습니다. 나는 똑같은 문제가 있었다. 여기 내가 한 일이있다. 이게 도움이되는지 알려주세요!

compile group: 'org.bytedeco', name: 'javacv', version: '0.9' 
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.9-0.9', classifier: 'android-arm' 
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.3-0.9', classifier: 'android-arm' 
+0

과 관련이 있습니다. 나는 gradle 종속성에 익숙하지 않지만 ffmpeg 및 opencv (버전 : '2.4.9-0.9', 버전 : '2.3- 0.9 ') – Vadym

+0

방금 ​​MavenCentral을 살펴 보았습니다. 다음은 FFMPEG에 대한 링크입니다. 12 월에 출시 된 새 버전이있는 것 같습니다. http://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg – tylerjroach

+0

javacv의 버전 0.11을 사용하고 있으며 'opencv'와 'ffmpeg'를 maven central에있는 최신 버전으로 바꿨습니다. 그러나 여전히 작동하지 않습니다. 나는 내 src/main 아래에 다른 .so 파일들이 들어있는 armeabi-v7a 폴더를 가지고있다. armeabi-v7a 폴더에 대해 아무 것도해야합니까? –