jinker
V2EX  ›  Android

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

  •  
  •   jinker · Nov 15, 2024 · 6609 views
    This topic created in 721 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
    cheng6563
    Nov 15, 2024
    1
    aremabi 一般指旧版 arm 架构。 现在的 32 位 arm 架构是 armeabi-v7a ,64 位是 arm64-v8a 。
    shayebushi
    shayebushi
    Nov 15, 2024❤️1
    2
    app/build.gradle, 只保留 armeabi 试试
    ndk {
    abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
    }
    biumall
    biumall
    Nov 15, 2024
    3
    android {

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

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