簡體   English   中英

加載32位JNI庫時(在LG Flex2上),在64位Android上發生UnsatisfiedLinkError

[英]UnsatisfiedLinkError on 64-bit Android when loading 32-bit JNI library (on LG Flex2)

我已經編寫了一個調用32位JNI庫的Android應用程序。 在Galaxy Note 4(32位,Snapdragon 805)上,一切正常,在LG Flex2(64位,Snapdragon 810)上,僅當將參數“ --abi armeabi-v7a”傳遞給ADB時,該應用程序才能工作(顯然)。

但是,當手動安裝jar文件時,Android假定它是一個64位應用程序,這將導致下面列出的UnsatisfiedLinkError。

這是我已經檢查/嘗試過的內容:-整個APK中不存在64位庫-APK中只有一個特定於Arch的目錄(lib / armeabi-v7a)
-本機庫使用“ LOCAL_MULTILIB:= 32”構建

知道為什么Android堅持以64位模式運行此應用程序嗎? 據我了解,Android在安裝過程中僅遇到32位本機共享庫時應自動檢測舊版32位應用程序。

預先感謝您,克萊門斯

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/at.ac.ait.modentity-2/base.apk"],nativeLibraryDirectories=[/data/app/at.ac.ait.modentity-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "liblept.so"
java.lang.Runtime.loadLibrary(Runtime.java:366)

PS:請不要提出建議部署64位庫的任何評論,我希望該應用程序以32位模式執行。

問題是一個依賴關系,該依賴關系引入了許多不同體系結構的本機庫(領域,librealm-jni.so)。

因此,安裝程序檢測到該單個64位共享庫,並確定該應用程序支持64位/安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM