adaptech-cz/Tesseract4Android

duplicate class

WeiHungHuang opened this issue · 7 comments

The following error shows when building app
java.lang.RuntimeException: Duplicate class com.googlecode.leptonica.android.AdaptiveMap found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0)

Here is the build.gradle
`dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation project(path: ':opencv')
implementation ('cz.adaptech:tesseract4android:4.1.0')
// implementation 'cz.adaptech:tesseract4android-openmp:4.1.0'

}
`

OpenCV doesn't contain Leptonica when you download official package from https://opencv.org
That means you probably downloaded some user-made library which combined OpenCV AND Leptonica, same as Tesseract4Android combines Tesseract + Leptonica.

So use official OpenCV package. Otherwise you need to create your own build where you will combine Tesseract, Leptonica and OpenCV.

It's not related with OpenCV.

Only cz.adaptech:tesseract4android:4.1.0 is included in build.gradle from jitpack.io
maven { url 'https://jitpack.io' }

implementation ('cz.adaptech:tesseract4android:4.1.0')

However, the error showed that tesseract4android-openmp was also included as shown below

java.lang.RuntimeException: Duplicate class com.googlecode.leptonica.android.AdaptiveMap found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0)

@WeiHungHuang Thanks for report. I released new version 4.1.1 which should be available correctly on JitPack. Old 4.0.0 also works.

Thanks.

Hello guys,
I am still getting this duplicate error at build and am using 4.1.1

Duplicate class com.googlecode.leptonica.android.AdaptiveMap found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Binarize found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Box found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Boxa found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Clip found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Constants found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Constants$SortBy found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Constants$SortOrder found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Constants$StorageFlag found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Convert found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Edge found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Edge$EdgeOrientationFlag found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Enhance found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.GrayQuant found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.JpegIO found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.MorphApp found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.MorphApp$TophatType found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pix found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pix$ImageFileFormat found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pix$ImageFileFormat$Format found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pixa found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pixa$1 found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Pixa$PixIterator found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.ReadFile found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Rotate found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Scale found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Scale$1 found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Scale$ScaleType found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.Skew found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.leptonica.android.WriteFile found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.PageIterator found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.ResultIterator found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$OcrEngineMode found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$PageIteratorLevel found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$PageIteratorLevel$Level found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$PageSegMode found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$PageSegMode$Mode found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$ProgressNotifier found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessBaseAPI$ProgressValues found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class com.googlecode.tesseract.android.TessPdfRenderer found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0) Duplicate class cz.adaptech.android.tesseract4android.BuildConfig found in modules tesseract4android-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android:4.1.0) and tesseract4android-openmp-4.1.0-runtime.jar (cz.adaptech.tesseract4android:tesseract4android-openmp:4.1.0)

@DoozyDoz Your log/error message says you are using 4.1.0, not 4.1.1.

@Robyer Thanks, it has now built successfully