2016-03-17 20 views
15

Voglio importare tess-two library in Android Studio e dopo la compilazione mostra errore in ndk build. Ho già provato la soluzione fornita su StackOverflow. mi piace, Execution failed for task ':app:compileDebugNdk' ma non ha risolto il mio problema. per favore suggeriscimi dove sto sbagliando.Problema di integrazione alla libreria tess-two (Tesseract Tools per Android) in uno studio Android e creare ndk

Si visualizza il seguente errore:

Error:error: undefined reference to 'isnanf' 

Error:error: undefined reference to '__isinff' 
Error:error: undefined reference to 'isnanf' 
[arm64-v8a] Install  : libtess.so => libs/arm64-v8a/libtess.so 
Error:error: undefined reference to 'isnanf' 
Error:error: undefined reference to '__isinff' 
Error:error: undefined reference to 'isnanf' 
[x86_64] Install  : libjpgt.so => libs/x86_64/libjpgt.so 
Error:error: linker command failed with exit code 1 (use -v to see invocation) 
Error:error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [obj/local/armeabi-v7a/libtess.so] Error 1 

make: *** Waiting for unfinished jobs.... 
make: *** [obj/local/armeabi/libtess.so] Error 1 
make: Leaving directory `D:/OCR/tess-two-master/tess-two-master/tess-two' 
:tess-two:ndkBuild FAILED 

Error:Execution failed for task ':tess-two:ndkBuild'. 
Process 'command 'D:\SDK\sdk\ndk-bundle/ndk-build.cmd'' finished with non-zero exit value 2 
+2

Se si desidera solo una libreria funzionante, è possibile utilizzare la versione precompilata (consultare "Utilizzo" [qui] (https://github.com/rmtheis/tess-two#usage)) o compilare con NDK r10e. – rmtheis

+0

Grazie, è stato compilato con r10e. – Rajan1404930

+0

Ciao sto usando la stessa libreria in Ubuntu, ma ho questo errore Errore: Esecuzione fallita per task ': tess-two: ndkBuild'. > Si è verificato un problema durante l'avvio del processo 'comando' ndk-build ''. Per favore aiutatemi al più presto. Grazie in anticipo. – Naveen

risposta

12

Risulta che la causa principale di questo errore è che NDK r11 non supporta android-8 (2.2.x Android), considerando che NDK r10 fatto.

La modifica del file Application.mk per utilizzare APP_PLATFORM := android-9 risolve questo problema.

+0

Sai dove è documentato questo cambiamento? – bleater

+1

In realtà, NDK include ancora Android-3 come la prima piattaforma targetizzabile. La ragione per cui il passaggio a android-9 funziona per isnan/isnanf è che precisamente questi simboli sono stati rimossi da libm.so da questo changeset: https://android.googlesource.com/platform/development/+/977bf483813dd117c149880a389c97df1b881805%5E!/ – bleater