Загрузка webrtc-клиентского модуля с датчиком отпечатков пальцев, сделать систему датчиков отпечатков пальцев (.so) файл не найден

#android #module #unsatisfiedlinkerror #socket.io-java-client

#Android #модуль #ошибка неудовлетворительной ссылки #socket.io-java-client

Вопрос:

Я работаю над добавлением реализации датчика отпечатков пальцев OTG в проект webrtc-client. В библиотеке датчиков отпечатков пальцев есть файл .so, который мне нужно добавить в папку jniLibs. И я преобразовал проект webrtc-client android в библиотеку и пытаюсь включить его в проект, где датчик отпечатков пальцев уже реализован, но как только я добавляю этот модуль в проект, приложение начинает выдавать ошибку для датчика отпечатков пальцев system.so файл, вот подробная информация об ошибке:

     Process: com.fingerprint.rcapp, PID: 7793
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.fingerprint.rcapp--XpzGpbTo00QmDUMlC48fQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.fingerprint.rcapp--XpzGpbTo00QmDUMlC48fQ==/lib/arm64, /data/app/com.fingerprint.rcapp--XpzGpbTo00QmDUMlC48fQ==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]] couldn't find "libast2600.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
        at java.lang.System.loadLibrary(System.java:1667)
        at com.fingerprint.rcapp.astdev.natives.PfsBioFpJNI.<clinit>(PfsBioFpJNI.java:95)
        at com.fingerprint.rcapp.astdev.natives.PfsBioFpJNI.createInstance(PfsBioFpJNI.java:110)
        at com.fingerprint.rcapp.astdev.natives.Ast2600.<init>(Ast2600.java:41)
        at com.fingerprint.rcapp.LoginActivity.onCreate(LoginActivity.java:98)
        at android.app.Activity.performCreate(Activity.java:7955)
        at android.app.Activity.performCreate(Activity.java:7944)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3423)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7814)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1068)

  

Я пытался искать похожие решения, но ничего не сработало в мою пользу, было бы очень полезно, если бы кто-нибудь мог мне помочь в этом. Спасибо.

Редактировать

Одна вещь, которую я обнаружил, это socket.io-client библиотека, и io.pristine библиотеки создают эту проблему. Когда я комментирую эти две библиотеки, он работает нормально, но затем webrtc-client не работает.

         implementation 'com.github.nkzawa:socket.io-client:0.4.2'
        api 'io.pristine:libjingle:9127@aar'

  

РЕДАКТИРОВАТЬ 2

Я выяснил основную причину этой проблемы, библиотека датчиков отпечатков пальцев OTG использует 32-разрядный .so файл, но io.pristine:libjingle:9127@aar библиотека использует 64-разрядный файл .so, поэтому, когда я добавляю эту библиотеку, она ищет библиотеку датчиков отпечатков пальцев только в 64-разрядных библиотеках. Чтобы исправить эту проблему, я пытаюсь реализовать либо поддержку как 64-разрядных, так и 32-разрядных библиотек, либо запросить 64-разрядную библиотеку у поставщика датчиков отпечатков пальцев.

Ответ №1:

Исправлена эта проблема путем добавления реализации для поддержки как 32-разрядных, так и 64-разрядных библиотек.