jinker
V2EX  ›  Android

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

  •  
  •   jinker · Nov 15, 2024 · 5809 views
    This topic created in 567 days ago, the information mentioned may be changed or developed.

    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 replies    2024-11-15 19:43:51 +08:00
    cheng6563
        1
    cheng6563  
       Nov 15, 2024
    aremabi 一般指旧版 arm 架构。 现在的 32 位 arm 架构是 armeabi-v7a ,64 位是 arm64-v8a 。
    shayebushi
        2
    shayebushi  
       Nov 15, 2024   ❤️ 1
    app/build.gradle, 只保留 armeabi 试试
    ndk {
    abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
    }
    biumall
        3
    biumall  
       Nov 15, 2024
    android {

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

    @shayebushi 感谢大佬,跟着做解决了这个问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3000 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:57 · PVG 15:57 · LAX 00:57 · JFK 03:57
    ♥ Do have faith in what you're doing.