我正在尝试获取一个在旧版 Android 手机上运行的应用程序,以在 Galaxy S20 FE 5G 上运行来自 adb logcat 的日志显示未找到“libiconv.so”

问题描述

我解压了 .apk 文件文件 libiconv.so 位于正确的文件夹“/lib/aarch64/”中。

日志显示文件“未找到”。

这是日志的相关部分

     26 05-03 11:55:50.861 13141 13141 E AndroidRuntime: Process: com.ladsnet.jobtrac,PID: 13141
     27 05-03 11:55:50.861 13141 13141 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen Failed: library "libiconv.so" not found
     28 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
     29 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
     30 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at java.lang.System.loadLibrary(System.java:1664)
     31 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at com.ladsnet.jobtrac.MenuAct.<clinit>(MenuAct.java:77)
     32 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at java.lang.class.newInstance(Native Method)
     33 05-03 11:55:50.861 13141 13141 E AndroidRuntime:    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)```

I have read many fixes for this issue,they are available in great variety,but none seem applicable.  I have tried building at targetSdkVersion 28 and 21 to no avail.

Here is the build info from the device I am trying to run this on:
QUALCOMM build  7c6959d1f7,Ifdda647016
Build Date      09/03/20
Build Config    S P 10.0.5 AArch64
Driver Path     /vendor/lib64/egl/libGLESv2_adreno.so

I have some experience with this sort of work,last year I managed to ad a module to the app that required OpenCV,it was not fun but I got it to work. 

I am at a loss as to what to try next.

Thanks,Jim

解决方法

我发现了一个很好的页面,帮助很大。

https://github.com/pelya/libiconv-libicu-android/

我将 GNU libiconv tar 文件从 15 更新为 16,并为 arm64-v8a 构建了 libiconv.so

现在我需要 libc++ 库。