Android Tesseract App si blocca sulla function OCR

Sto provando ad attuare Tesseract nel mio progetto android, ma sto ottenendo un crash quando si cerca di completare l'OCR.

Ecco come sto installando Tesseract:

  • Il text sul filatore è bianco su uno background bianco
  • come sovrapporre una galleria orizzontale con una galleria verticale
  • C'è una dimensione bitmap massima quando si utilizza getDrawingCache?
  • Colbind android a due reti wireless contemporaneamente
  • Come aggiungere un evento di calendario su un dispositivo Android con una determinata data?
  • come catturare un'image in background senza utilizzare l'applicazione della camera
  • TessBaseAPI baseApi = new TessBaseAPI(); baseApi.setDebug(true); baseApi.init(imagePath, "eng"); baseApi.setImage(bitmap); String receachzedText = baseApi.getUTF8Text(); baseApi.end(); 

    Ecco come sto impostando le informazioni sull'image per passare nel TesseractAPI:

      destination = new File(Environment.getExternalStorageDirectory(), name + ".png"); imagePath = destination.getAbsolutePath(); String name = dateToString(new Date(),"yyyy-MM-dd-hh-mm-ss"); 

    Ecco il Logcat:

     10734-10734/www.rshdev.com.ocr E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: www.rshdev.com.ocr, PID: 10734 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/www.rshdev.com.ocr-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libpngt.so" at java.lang.Runtime.loadLibrary(Runtime.java:366) at java.lang.System.loadLibrary(System.java:988) at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:43) at www.rshdev.com.ocr.MainActivity.ocr(MainActivity.java:140) at www.rshdev.com.ocr.MainActivity.onActivityResult(MainActivity.java:86) at android.app.Activity.dispatchActivityResult(Activity.java:6192) at android.app.ActivityThread.deliverResults(ActivityThread.java:3570) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3617) at android.app.ActivityThread.access$1300(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1352) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

  • Android SaveInstanceState - Comprensione
  • Uscire da app quando clicca il button in phonegap android?
  • Come creare una cartella all'interno di una cartella in sysfs
  • C'è un modo per riutilizzare il codice constructor per il riassembly
  • Nel frammento sul button indietro l'attività è vuota
  • importre libreria esterna in studio android 0.2.8
  • 4 Solutions collect form web for “Android Tesseract App si blocca sulla function OCR”

    Il tuo tesseract non si blocca nella function OCR, si blocca cercando di caricare una libreria:

     java.lang.UnsatisfiedLinkError: ... couldn't find "libpngt.so" ... at com.googlecode.tesseract.android.TessBaseAPI.<clinit>(TessBaseAPI.java:43) 

    Ma la linea 43 nella fonte che ho letto:

      System.loadLibrary("tess"); 

    quindi tenta di caricare libtess.so ma segnalerà un errore su libpngt.so .

    O:

    1) il codice sorgente di TessBaseAPI.java è diverso, contiene System.loadLibrary("pngt"); e manca la libreria. Assicurarsi che il .apk lo contiene. Eclipse ha usato un errore: se il codice dipende da una libreria, si configura questa dipendenza per la compilazione in un unico luogo e per la consegna in un altro luogo. E la dipendenza di IIRC .so è stata specificata in un terzo posto.

    2) libtess.so viene compilato con collegamento dinamico (cercare di utilizzare il collegamento statico quindi)

    3) si sta cercando di eseguirlo nell'emulatore (provare ad esempio su un vero dispositivo).

    Questo è tutto ciò che si può dire dalle informazioni fornite.

    Maggiori informazioni sulla soluzione:

    Mi sono trovata di fronte a questo problema quando mi sono trasferito da Windows a Linux. Il mio Linux non aveva installato alcun NDK .

    Lo ho scaricato dalla fonte ufficiale .

    Istruzioni per l'installazione sotto Linux:

    Vai alla directory in cui lo hai scaricato. Eseguire il pacchetto. Per esempio:

     ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin ndk$ ./android-ndk-r10c-darwin-x86_64.bin 

    È inoltre necessario ribuild tess-two sotto Linux. Seguire l'istruzione nella fonte ufficiale .

    Assicurati di utilizzare la stessa versione gradel sul tuo progetto e nel progetto tess lib. Esempio:

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

    Il valore sul classpath deve essere uguale a entrambi i progetti.

    1. non aggiornare alcun aggiornamento gradard aur sdk … ripeto .. ignorare tutto l'aggiornamento se chiedo e functionrà senza problemi. Basta importre il progetto di priyankverma ######## da github e IGNORE tutti gli aggiornamenti … sono sicuro di non avere questo errore libpngt.so.
      1. Scaricare o clonare il progetto
      2. importzione in studio android
      3. lasciate che le versioni gradle e sdk siano così
      4. Ignore tutti gli AGGIORNAMENTI anche che sta dicendo "fortemente consigliato.
      5. semplicemente eseguire il progetto. 🙂
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.