您的位置:首页 > 编程语言 > Java开发

Android Studio 导入Eclipse项目后,so文件出现错误,出现UnsatisfiedLinkError

2017-02-28 09:54 666 查看
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']后,再次编译运行即可解决上述报错问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐