본문 바로가기

Android

[android] how to build the card.io-Android-source project in android studio

Android Studio 에서 양각 카드스캔용 card.io-Android-source 빌드하는 방법!



card.io는 양각 카드번호 스캔 시 사용

google-Android-vision은 프린팅된 카드번호 스캔 시 사용





1. Github 에서 card.io-Android-source 다운로드

- url : https://github.com/card-io/card.io-Android-source




2. AndroidStudio 에서 다운받은 프로젝트 열기




3. gradle upgrade 및 build.gradle 정리 (++ 불필요한 소스코드 정리 = 알아서..)


(0) gradle upgrade


(1) project 단위 build.gradle


(2) app 단위 - card.io build.gradle


(3) app 단위 - SampleApp build.gradle




4. build 후 실행 시에 발생하는 compile 에러에 대처하는 우리들의 자세


(1) *** Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared.



(1-sol) NDK버전을 낮춰준다. (Application.mk 의 APP_STL := 을 gnustl_static 에서 c++_static으로 변경할 경우 진행은 되나, 또 다른 에러에 직면하게 된다..)


 안정적인 버전의 NDK 받기 (Android NDK, Revision 16b (December 2017))

- url : https://developer.android.com/ndk/downloads/older_releases?hl=ko


ⓑ local.properties에서 NDK 참조경로 바꾸기



(2) *** No rule to make target

- path : card.io-Android-source-master/card.io/src/main/jni/card.io-dmz 하위에 가보면 뭐가 아무것도 없다.


(2-sol) card.io-dmz 추가


ⓐ github 에서 card.io-dmz 다운로드

- url : https://github.com/card-io/card.io-dmz


ⓑ 압축 해제 후 폴더내에 존재하는 모든 파일을 card.io 프로젝트 내의 경로로 복사 (문서나 프로젝트 관리 파일은 복사안해도 된다.)

- path : /card.io-Android-source-master/card.io/src/main/jni/card.io-dmz/




5. 정상 빌드 후 실행화면






6. 추가 에러 관련


(1) opencv2가 중복되어 컴파일이 안되는 경우

- path1 : /card.io-Android-source-master/card.io/src/main/jni/opencv2

- path2 : /card.io-Android-source-master/card.io/src/main/jni/card.io-dmz/opencv2

- 위 두개가 중복되므로 card.io-dmz 의 하위에있는 opencv2 폴더 통째로 삭제


(2) build tools 버전이 3.3.0 으로 빌드했을 때 Project 단위의 root sources 경로가 전혀 엉뚱한 상위폴더로 바뀌는 바람에 이거 해결하려고 시간 다 까먹음.. 표시되는 폴더는 이상해도 빌드 및 실행은 잘된다... build tools 버전을 3.3.1로 업데이트하니 해당 현상이 해결되었다.

classpath 'com.android.tools.build:gradle:3.3.1'




끝.