Android Studio与javaCv和FFMPEG [英] Android Studio with javaCv and FFMPEG
问题描述
所以我正在使用新的Android Studio,我试图在最基本的设置中安装JavaCV。我做了一个全新的项目,没有任何内容,导入(我认为不成功)JavaCV库,然后我运行JavaCV repo中给出的示例之一,我收到以下错误。
So I am using the new Android Studio and I am trying to get JavaCV installed in the most basic setup. I made a brand new project with nothing in it, imported (I think unsuccessfully) the JavaCV library and then I am running one of the samples given in the JavaCV repo and I am getting the following error.
Process: com.example.calvintmoss.dejavid, PID: 1187
java.lang.UnsatisfiedLinkError: Couldn't load jniopencv_core from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.calvintmoss.dejavid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.calvintmoss.dejavid-1, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
at org.bytedeco.javacpp.Loader.load(Loader.java:410)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
at org.bytedeco.javacpp.helper.opencv_core$AbstractIplImage.create(opencv_core.java:909)
at com.example.calvintmoss.dejavid.MainActivity.initRecorder(MainActivity.java:249)
at com.example.calvintmoss.dejavid.MainActivity.onCreate(MainActivity.java:151)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load opencv_core from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.calvintmoss.dejavid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.calvintmoss.dejavid-1, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:535)
at org.bytedeco.javacpp.Loader.load(Loader.java:401)
at org.bytedeco.javacpp.Loader.load(Loader.java:353)
at org.bytedeco.javacpp.opencv_core.<clinit>(opencv_core.java:10)
at org.bytedeco.javacpp.helper.opencv_core$AbstractIplImage.create(opencv_core.java:909)
at com.example.calvintmoss.dejavid.MainActivity.initRecorder(MainActivity.java:249)
at com.example.calvintmoss.dejavid.MainActivity.onCreate(MainActivity.java:151)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
我已经读了几个关于这个问题的其他顶级帖子,但我无法弄明白什么是错误的。我通过gradle下载了JavaCV,然后我添加了lib和lib / areabi文件夹。我将ffmpeg.jar,javacpp.jar,javacv.jar和opencv.jar全部导入到lib文件夹中。我从opencv-android-arm.jar和ffmpeg-android-arm.jar中提取了所有的.SO文件,并将它们放在lib / armeabi中,就像 git repo 。我不知道发生了什么。任何人都有什么想法?另外我目前的设置是。 Project-> AppModule然后里面是我有我的lib和lib里面我有armeabi。有没有人有任何关于发生什么的信息?
I have read several of the other top posts on the issue but I cannot figure out what is wrong. I downloaded the JavaCV through gradle, then I added the lib and lib/areabi folders. I imported ffmpeg.jar, javacpp.jar, javacv.jar and opencv.jar all to the lib folder. and I extracted all the .SO files from opencv-android-arm.jar and ffmpeg-android-arm.jar and put them in the lib/armeabi just like the instructions on the git repo. I cannot figure out what is going on. Anyone have any ideas? Also my current setup is. Project->AppModule and then inside of that is where I have my lib and inside of lib i have the armeabi. Does anyone have any info on whats going on?
推荐答案
尝试添加这五个依赖关系的代码:
Try to add these five codes in dependency:
compile 'org.bytedeco:javacv:+'
compile 'org.bytedeco.javacpp-presets:opencv:3.0.0-1.1:android-x86'
compile 'org.bytedeco.javacpp-presets:ffmpeg:2.8.1-1.1:android-x86'
compile 'org.bytedeco.javacpp-presets:opencv:3.0.0-1.1:android-arm'
compile 'org.bytedeco.javacpp-presets:ffmpeg:2.8.1-1.1:android-arm'
您现在使用的是bytedeco而不是googlecode。
Here you are using bytedeco instead of googlecode now
这篇关于Android Studio与javaCv和FFMPEG的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!