我是一個學生在OCR功能爲我的學校項目。直到現在,我才能夠實現這些功能併成功運行應用程序。Android的OCR:不合適的鏈接錯誤
我有我的應用程序在Android Studio 1.5.1上,並且能夠在我的舊設備上運行它,Samsung Galaxy Note 3 API 21。最近,我改變我的設備三星Galaxy Note 5 API 22和應用程序崩潰每當我試圖運行OCR功能。
下面是logcat的:
Fatal Exception: java.lang.IllegalStateException: Could not execute method of the activity at android.view.View$1.onClick(View.java:4298) at android.view.View.performClick(View.java:5254) at android.widget.TextView.performClick(TextView.java:10557) at android.view.View$PerformClick.run(View.java:21203) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6897) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) Caused by java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at android.view.View$1.onClick(View.java:4293) at android.view.View.performClick(View.java:5254) at android.widget.TextView.performClick(TextView.java:10557) at android.view.View$PerformClick.run(View.java:21203) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6897) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) Caused by java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.l33902.contactmanagment1512-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.l33902.contactmanagment1512-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libpngt.so" at java.lang.Runtime.loadLibrary(Runtime.java:367) at java.lang.System.loadLibrary(System.java:988) at com.googlecode.tesseract.android.TessBaseAPI.(TessBaseAPI.java:43) at com.example.l33902.contactmanagment1512.ShowImage.initTess(ShowImage.java:171) at com.example.l33902.contactmanagment1512.ShowImage$OCR.onPreExecute(ShowImage.java:551) at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:591) at android.os.AsyncTask.execute(AsyncTask.java:539) at com.example.l33902.contactmanagment1512.ShowImage.startOCR(ShowImage.java:188) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at android.view.View$1.onClick(View.java:4293) at android.view.View.performClick(View.java:5254) at android.widget.TextView.performClick(TextView.java:10557) at android.view.View$PerformClick.run(View.java:21203) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6897) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
我已經在這個應用中實現Crashlytics及以下作爲說明飛機墜毀的原因:
如規定的誤差是不合適的鏈接錯誤,據此它說應用程序失敗,因爲它無法加載庫「libpngt.so」。
事情是,我之前在Android Studio上處理Galaxy Note 3時遇到過此錯誤,並通過將「libpngt.so」放入「tess-two \ libs \ armeabi-v7a」 「 目錄。它仍然是在Galaxy Note的3
工作如下圖所示:
而且我已經搜查了許多網站的解決方案。 NDK構建也已成功構建。
目前我不確定我能做些什麼未來,我已經解決了這個錯誤之前,但在以前的解決方案是不工作出現這種情況相同的問題。
難道由未在thew logcat中規定的任何其他錯誤造成的?也許API的變化?只是想知道,請通過提供任何可能的建議來幫助我,因爲我仍然是Android開發人員的初學者。提前致謝!
對應的* .so文件有可能是一個lib文件。如果那樣,你是否將這些包含在項目的構建路徑中?您是否嘗試移植現有的eclipse項目或構建新項目?你可以嘗試刪除「app \ build」下的文件夾,然後清理>構建 – Stallion
這是一個ecilpse項目,但是我已經移植到Android Studio並且可以成功運行。只有在將設備切換到Samsung Note 5後,纔會出現此問題。 –
您正在使用的是哪種OCR SDK?檢查您使用的OCR SDK版本是否支持該設備。有些可能無法在更高版本中使用。 – Stallion