我正确访问文件了吗?

时间:2013-01-11 22:16:08

标签: java android opencv

这是我正在尝试使用的代码

File filePath = new File(Environment.getExternalStorageDirectory(), "/test.bmp");
String file = filePath.getAbsolutePath();
Mat input_mat = Highgui.imread(file);

当我使用最后一行的应用程序时,它会崩溃。我不确定最后一行是错误还是我没有正确访问test.bmp文件。它保存在SD卡的根目录中。

这是针对eclipse上的Android应用程序。

编辑logcat

01-11 22:38:50.288: E/AndroidRuntime(545): FATAL EXCEPTION: main
01-11 22:38:50.288: E/AndroidRuntime(545): java.lang.UnsatisfiedLinkError: imread_1
01-11 22:38:50.288: E/AndroidRuntime(545):  at org.opencv.highgui.Highgui.imread_1(Native Method)
01-11 22:38:50.288: E/AndroidRuntime(545):  at org.opencv.highgui.Highgui.imread(Highgui.java:324)
01-11 22:38:50.288: E/AndroidRuntime(545):  at com.example.android.photobyintent.PhotoIntentActivity.dispatchProcVideoIntent(PhotoIntentActivity.java:186)
01-11 22:38:50.288: E/AndroidRuntime(545):  at com.example.android.photobyintent.PhotoIntentActivity.access$2(PhotoIntentActivity.java:182)
01-11 22:38:50.288: E/AndroidRuntime(545):  at com.example.android.photobyintent.PhotoIntentActivity$4.onClick(PhotoIntentActivity.java:264)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.view.View.performClick(View.java:3480)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.view.View$PerformClick.run(View.java:13983)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.os.Handler.handleCallback(Handler.java:605)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.os.Handler.dispatchMessage(Handler.java:92)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.os.Looper.loop(Looper.java:137)
01-11 22:38:50.288: E/AndroidRuntime(545):  at android.app.ActivityThread.main(ActivityThread.java:4340)
01-11 22:38:50.288: E/AndroidRuntime(545):  at java.lang.reflect.Method.invokeNative(Native Method)
01-11 22:38:50.288: E/AndroidRuntime(545):  at java.lang.reflect.Method.invoke(Method.java:511)
01-11 22:38:50.288: E/AndroidRuntime(545):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-11 22:38:50.288: E/AndroidRuntime(545):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-11 22:38:50.288: E/AndroidRuntime(545):  at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:3)

这与读取位图文件无关。 UnsatisfiedLinkError表示无法找到实现该类的共享对象(.so文件)。这意味着您的项目配置出了问题。您是否已将所需文件复制到libs/armeabilibs/armeabi-v7alibs/x86

另见:

Android for OpenCV - error opening trace file, UnsatisfiedLinkError