주의.
본 내용은 예전버전으로 설치내용이 다소 변경될 수 있습니다. 다른블로그 가는것을 권장합니다^^ |
버전마다 매우 상이한 내용이라 많은 어려움이 있음.
각 블로그 및 카페에서 소개하는내용은 환경을 그대로 맞춰야 대부분 되는것 같음.
최신버전으로 해봤는데... 구조가 너무 많이 바뀜...........
최근 Android SDK 가 20이 나왔고
Android-NDK 경우 r8 버전이. (r7버전과 사용에 있어서 문제가 없을듯하다.)
OpenCV 가 가장 크게 문제가 되는것 같다.
OpenCV경우 2.4.2 가 나왔고
/sdk/
/samples/
/doc/
/apk/
으로 이루어졌다..........
sdk만 쓰면 될거 같은데 내부적으로 또다시 세분화 되었다........유유
경로 Path 지정하는것 조차 버거움.
먼저 OpenCV for Android 에서
구성하는
src폴더 : 응용프로그램의 Java코드를 포함
libs 폴더 : 성공적인 빌드 후 네이티브 라이브러리 포함
jni 폴더 : C/C++ 응용프로그램 소스 코드와 NDK 빌드 스크립트 Android.mk 및 Application.mk
OpenCV측에서는
jni/Android.mk 파일에 대한 규칙을 사용하여 별도의 작성을 중요시한다.
성공한 버전에 대해 다른 PC에서 재시도해봄.
현재는 샘플 프로젝트를 돌리는데까지 만....
환경 - OpenCV 2.3.1 |
먼저 확인이 안된 사항이지만, 이 코드가 정확히 어디에 쓰이는지는..모른다...
bashrc 파일을 수정하여 추가한다.
export OPENCV_ROOT=/home/Administrator/OpenCV-2.3.1 export OPENCV_INCLUDES=/home/Administrator/OpenCV-2.3.1/include |
당연히 자신의 경로에 맞춰야겟다. cygwin폴더/home/계정명/Opencv폴더~블라블라
Samples 프로젝트 내에 /jni/android.mk 파일을 vs나 editPlus나 vi편집기로 수정.
빨간색 내용이 중요.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=STATIC
OPENCV_INSTALL_MODULES:=on
include ../includeOpenCV.mk
ifeq ("$(wildcard $(OPENCV_MK_PATH))","")
#try to load OpenCV.mk from default install location
include /home/Admin/OpenCV-2.3.1/share/OpenCV/OpenCV.mk
else
include $(OPENCV_MK_PATH)
endif
LOCAL_MODULE := native_sample
LOCAL_SRC_FILES := jni_part.cpp
LOCAL_LDLIBS += -llog -ldl
LOCAL_C_INCLUDES += $(OPENCV_INCLUDES) $(ANDROID_OPENCV_INCLUDES)
include $(BUILD_SHARED_LIBRARY) |
include /home/Admin/OpenCV-2.3.1/share/OpenCV/OpenCV.mk
경우 자기것에 맞게 Opencv의 경로를 따라가 OpenCV.mk 파일의 경로를 지정한다.
LOCAL_MODULE : 생성될 so파일명
LOCAL_SRC_FILES : 소스파일이 될것. native코드.
include $(BUILD_SHARED_LIBRARY) : 공유라이브러리를 생성
LOCAL_C_INCLUDES 경우 아직 정확한 근거를 못찾음.
수정한 해당 프로젝트를 자바이클립스에서 import하여 가져온다.
문제 없이 실행될것이다.
import opencv 관련 에러가 발생한다면 Path 지정문제일드 싶다. Android.mk 나 includeOpenCV.mk 의
Path를 확인하여 includeOpenCV.mk 파일의 위치또한 확인해볼것.
'Android' 카테고리의 다른 글
--- decoder->decode returned false 문제 (0) | 2012.07.31 |
---|---|
java.lang.IllegalAccessException: access to class not allowed (5) | 2012.07.25 |
super(Context), super.onCreate : 예약어 super와 Context (1) | 2012.07.20 |
안드로이드 Activity Intent Flag (0) | 2012.07.18 |
Android With OpenCV using NDK - (1) (0) | 2012.07.15 |