2013-01-11 2 views
0

이 내가이 충돌 마지막 줄에 응용 프로그램을 사용할 때파일에 올바르게 액세스하고 있습니까?

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

를 사용하기 위해 노력하고있어 코드입니다. 마지막 줄이 실수인지 또는 test.bmp 파일에 제대로 액세스하지 않는지 확실하지 않습니다. 그것은 sdcard의 루트에 저장됩니다.

이클립스 용 안드로이드 앱용입니다.

편집 로그 캣

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

당신이 때 응용 프로그램이 충돌을보고있는 로그 캣에서 오류 메시지가 무엇입니까? –

+1

이것은 당신의 문제와 관련이 없지만, 앞의 '/'가 파일 이름에 필요 없다고 언급하고 싶습니다. "새로운 File()"생성자가 그것을 추가 할 것입니다. 둘째, 파일을 SD 카드의 최상위에 놓는 것은 좋지 않은 스타일입니다. 그렇게 혼란 스러울 수 있습니다. 파일에 대한 응용 프로그램 특정 디렉토리를 작성해야합니다. –

+0

SD 카드에 액세스 할 권한이 없습니까? – Doomsknight

답변

3

이 비트 맵 파일의 열람과는 아무 상관이 없습니다. UnsatisfiedLinkError은 해당 클래스를 구현하는 공유 객체 (.so 파일)를 찾을 수 없음을 의미합니다. 프로젝트 구성에 문제가 있음을 의미합니다. 필요한 파일을 libs/armeabi, libs/armeabi-v7alibs/x86으로 복사 했습니까?

또한 참조 :

Android for OpenCV - error opening trace file, UnsatisfiedLinkError

+0

나는 그렇지 않았다. 나는 안드로이드 지원 v4.jar 만 볼 수 있습니다. armeabi armeabi-v7a 또는 x86 없음. 추가해야하는 "필수 파일"은 무엇입니까? – user1971343

+0

다운로드 한 SDK에 있어야합니다. http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html – kichik

+0

armeabi-v7a x86 및 mip을 찾았지 만 armeabi는 찾지 못했습니다. 나는 그들을 추가했지만 같은 오류가 발생합니다. 내가 할 수있는 다른 건 없니? – user1971343

관련 문제