AndroidStudio导入Eclipse生成的adt项目报unsatisfiedlinkerror错误
2015-10-24 16:16
459 查看
现在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的文件路径没有配置正确,配置正确的话,问题应该会迎刃而解的。
在把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的文件路径没有配置正确,配置正确的话,问题应该会迎刃而解的。
相关文章推荐
- Struts2接收参数的几种方式
- Java基础学习4(进制之间的转换)
- spring ioc原理
- Java字串加密
- spring mvc拦截器和<mvc:annotation-driven />的详解
- 【Java】qatools.properties
- (转载)Java基础知识总结
- dubbo+zookeeper+springmvc整合,小入门
- Java 内部类
- Java一步一脚—ArrayList使用
- 使用mybatis生成相关文件时java.sql.SQLException: Access denied for user 'root'@'localhost' (using password)
- Java WebService 简单实例
- (转)java 排序算法
- JAVA泛型详解2 转载
- Struts2在动态调用Action的方法时的错误
- Java构建工具:Ant vs Maven vs Gradle
- thinking in Java 之访问权限控制
- IDEA Information:java: javacTask: 源发行版 1.7 需要目标发行版 1.7
- 使用IntelliJ IDEA 14和Maven创建java web项目
- 转 MyBatis+Spring 基于接口编程的原理分析