欢迎光临深圳市智谷联软件技术有限公司!

您好,登录注册

Android Studio 导入Eclipse项目后,so文件如何加载
阅读:1

Android Studio 导入Eclipse项目后,so文件如何加载,很多开发者碰到这个问题,如下,导入Eclipse项目后,提示无法找到串口需要的本地方法,也就是无法找到串口所需so文件

 

出现这个错误的原因是,Android Studio目录结构与ADT目录结构不一致,ADT中jnilib所在目录Android Studio中没有包含,编译打包过程中并没有打包到安装包中,所以运行就出现如下错误

 

01-01 23:32:07.751 4455-4475/com.smartdevice.testdpc900 E/AndroidRuntime: FATAL EXCEPTION: Thread-135
                                                                          java.lang.UnsatisfiedLinkError: Couldn't load serial_port from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.smartdevice.testdpc900-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.smartdevice.testdpc900-1, /vendor/lib, /system/lib]]]: findLibrary returned null
                                                                              at java.lang.Runtime.loadLibrary(Runtime.java:366)
                                                                              at java.lang.System.loadLibrary(System.java:514)
                                                                              at android.serialport.api.SerialPort.<clinit>(SerialPort.java:390)
                                                                              at com.smartdevicesdk.device.PC900$1.run(PC900.java:123)
                                                                              at java.lang.Thread.run(Thread.java:838)

 

 

我们打开build.gradle文件,看到默认配置如下

 

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'  java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
main声明中并没有配置jnilib文件路径
所以我们加入一条配置信息
sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'  java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
        jniLibs.srcDirs = ['libs']
    }
加入jniLibs.srcDirs=['libs']后,再次编译运行即可解决上述报错问题
 

 





Top

我公司主要提供以下产品: 手持终端 手持机 4G手持机 数据采集器 手持数据采集器 条码采集器 二维码采集器 条码识别器 数据采集终端 NFC/RFID手持终端机 超高频手持机 UHF手持机 盘点机 工业PDA 蓝牙打印机 小票打印机 热敏打印机 便携打印机 手持打印机 巡检系统 支付终端 移动支付终端设备 公司市场覆盖国内外50多个国家和地区,凭借源头技术开发能力,长期为新老客户提供智能终端和应用解决方案。公司倡导服务创造新价值,用核心技术和理念创造新市场。