V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jinker
V2EX  ›  Android

安卓开发导入使用第三方 jar 提示找不到.so 文件,救救小子吧~

  •  
  •   jinker · 5 天前 · 610 次点击

    PDA ,型号 HC720S ,usb 连接后,内部文件里有找到文档和 lib 文件夹,里面有 jar 包,以及.so 文件。

    项目是 kotlin 的,本人很少接触安卓开发,导入成功后,没有错误提示后就点击运行了,结果闪退,logcat 显示的信息关键部分:

    java.lang.UnsatisfiedLinkError: dlopen failed: library "libIAL.so" not found
                                                                                                        	at java.lang.Runtime.loadLibrary0(Runtime.java:1077)
                                                                                                        	at java.lang.Runtime.loadLibrary0(Runtime.java:998)
                                                                                                        	at java.lang.System.loadLibrary(System.java:1656)
                                                                                                        	at com.atid.lib.dev.barcode.params.ATScanSE4710Parameter.<clinit>(ATScanSE4710Parameter.java:36)
                                                                                                        	at com.atid.lib.dev.ATScanner.<init>(ATScanner.java:106)
                                                                                                        	at com.atid.lib.dev.ATScanManager.checkDevice(ATScanManager.java:251)
                                                                                                        	at com.atid.lib.dev.ATScanManager.getInstance(ATScanManager.java:114)
                                                                                                        	at com.example.cpdac.MainActivity.onCreate$lambda$1$lambda$0(MainActivity.kt:60)
    

    文件"libIAL.so"我已经跟着网上教程放到 jniLibs 下的 aremabi 了,还是不行。这是我的项目文件夹架构: img

    6 条回复    2024-11-15 19:43:51 +08:00
    cheng6563
        1
    cheng6563  
       5 天前
    aremabi 一般指旧版 arm 架构。 现在的 32 位 arm 架构是 armeabi-v7a ,64 位是 arm64-v8a 。
    shayebushi
        2
    shayebushi  
       5 天前   ❤️ 1
    app/build.gradle, 只保留 armeabi 试试
    ndk {
    abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
    }
    daohanghao
        3
    daohanghao  
       5 天前
    android {

    sourceSets {
    main {
    jniLibs.srcDirs = ['src/main/jniLibs']
    }
    }
    }
    okakuyang
        4
    okakuyang  
       5 天前
    大概率是因为 so 文件架构不对,aremabi 是比较老的架构了
    mmrpeng
        5
    mmrpeng  
       5 天前
    sourceSets {
    main {
    jniLibs.srcDirs = ['libs']
    }
    }
    然后 libs
    ├─arm64-v8a
    └─armeabi-v7a
    放对应 arch 的 so 库文件
    jinker
        6
    jinker  
    OP
       5 天前 via Android
    感谢各位帮助。

    @shayebushi 感谢大佬,跟着做解决了这个问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5276 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:32 · PVG 16:32 · LAX 00:32 · JFK 03:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.