AndroidStudio导入Eclipse生成的adt项目报unsatisfiedlinkerror错误

本文介绍如何将Eclipse下的第三方SDK导入Android Studio,并解决了在集成过程中遇到的unsatisfiedlinkerror错误。通过修改SDK模块的build.gradle文件,明确jniLibs路径,成功解决了SO库的引用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在Android开发Google官方是推荐用AndroidStudio的,但是还是有很多项目是Eclipse下的项目,

在把Eclipse生成的项目挪到AndroidStudio里面来还是花了些功夫的。

幸运的是现在Eclipse可以导出gradle文件了,也就是说Eclipse可以一键转换成AndroidStudio项目。

不过这中间还是会有一些坑的。

我最近在做集成第三方sdk的时候,就遇到了问题,步骤如下:

首先第三方sdk是个Eclipse项目而非AndroidStudio项目,所以第一步导出gradle文件。

右击项目文件夹选择Export,选择Android下面的Generate Gradle build files


一直Next下去,选择要导出的项目,最后点击finish即可生成相应的gradle文件了。

由于这个sdk项目是作为lib module导入到AndroidStudio project里面的,

所以最好是把生成gradle文件之后的挪到AndroidStudio Project文件夹下。这样在gradle里面添加lib module比较方便,路径好写。

SMSSDK和app主module处在一个Project文件夹下。

接下来就要开始打开AndroidStudio导入sdk项目了,点击File-New Module选择Import Eclipse ADT Project,如图


最后确定SDK路径点击Finish就没问题了。

导入之后,gradle编译也没问题,可是一到运行的时候却发现报unsatisfiedlinkerror错误。

上网查了下,这个错误是编译jni的so库找不到导致的,SDK里面是有调用so库的,检查了下ndk路径也没有配错,so库文件也都没有缺失,app的build.gradle文件也添加了对sdk module的引用。


代码里面调用SDK里面的API也没有编译错误。后来我分析也许是SMSSDK的module里面的build.gradle文件里没有引用so文件。

看了SMSSDK的build.gradle改了一下


在sourceSets里面添加了jniLibs.srcDirs = ['libs']  明确标明了SMSSDK的jniLibs路径,接下来运行OK,问题解决。


总结,对于AndroidStudio里面的so库引用问题,如果出现unsatisfiedlinkerror错误,那么一般就是gradle的文件里面jniLibs的文件路径没有配置正确,配置正确的话,问题应该会迎刃而解的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值