2016년 7월 31일 일요일

ocr tesseract 빌드기 (2)

앞에서 tesseract 를 ndk를 이용하여 빌드하여보았습니다.
http://swlock.blogspot.kr/2016/07/ocr-tesseract.html
하지만 안드로이드 어플을 만들기에는 뭐가 뭔지 모르게 복잡합니다.


샘플을 구해봤습니다. 아래에서 소스를 받습니다.
https://github.com/GautamGupta/Simple-Android-OCR
https://github.com/rmtheis/tess-two 이전에 빌드했던것 무시하고...ㅡㅡ;;

폴더 구조를 다음과 같이 맞춥니다.





tess-two-master를 android studio에서 open 합니다.
android studio에 load 합니다. ( 2.0에서 작업하였습니다 )
빌드하는데 굉장히 오래걸립니다.
이렇게 하면 이전에 cmd line에서 했던 작업을 하게되네요.


그리고 나서 Simple-Android-OCR 프로젝트를 import 해줍니다.




Destination 폴더를 설정해야하는데 그건 상위 폴더를 설정하게 합니다.

아래와 같이 프로젝트 로드가 완료됩니다.




하지만 아래와 같은 오류가 있네요.
Error:Execution failed for task ':simpleAndroidOCR:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [Simple-Android-OCR-master:tesstwo:unspecified] D:\work\android\ocr\tesseract2\Simple-Android-OCR-master\simpleAndroidOCR\build\intermediates\exploded-aar\Simple-Android-OCR-master\tesstwo\unspecified\AndroidManifest.xml
Suggestion: use tools:overrideLibrary="com.googlecode.tesseract.android" to force usage

app은 minsdk 8로 설정되어서 문제가 발생하는데 라이브러리는 9로 되있다고 합니다.



빨간색으로 된 부분 8->9로 변경합니다.

그리고 Build > Make Project를 합니다.

이번에는 아래와 같은 오류가 발생합니다.
Error:Execution failed for task ':tesstwo:compileReleaseNdk'.
> Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "$USE_DEPRECATED_NDK=true" in gradle.properties to continue using the current NDK integration.

아래와 같은 코드를 build.gradle에 추가해줍니다.
sourceSets {
    main {
        jni.srcDirs = []
    }
}



이제 완성되었습니다.



실행화면


----------------------------------------------------------------------------
이건 난이도가 있는 소스라고 하는데 해보지는 않았습니다.
https://github.com/rmtheis/android-ocr


Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to "abf87974ef3c08e3258fe37c7d5001161385f549"
<a href="fixGradleElements">Fix plugin version and sync project</a><br><a href="openFile:D:\work\android\ocr\tesseract2\Simple-Android-OCR-master\simpleAndroidOCR\build.gradle">Open File</a>

이런 에러 발생시 해결 방법이 여러개 있는것 같은데요.

http://stackoverflow.com/questions/29063968/plugin-is-too-old-please-update-to-a-more-recent-version-or-set-android-daily

아래 처럼 하니까 되네요
classpath 'com.android.tools.build:gradle:2.2.0-alpha4' ->

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'}

댓글 없음:

댓글 쓰기