之前和同学一起做Android的地图应用开发,用到了百度地图的SDK。但是很奇怪的事情是,在同学的电脑上一切正常,但是在我的电脑上死活就跑不起来,显示
Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/baidu/mapapi/BMapManager
这实在是太诡异了。由于我们使用的Eclipse版本不同,我用的是ADT 22,他用的是更早的,我一度怀疑是IDE的问题,然而按照百度官方文档修改项目配置后,依然报同样的异常。
为了解决这个问题,我上网搜索资料,http://longquan.iteye.com/blog/1583167 这篇文章给了我启发。我开始一样一样检查问题的原因,最后惊讶的发现armeabi文件夹下竟然缺少so文件!
这是怎么回事?为什么我的同学能正常运行呢?仔细检查之后我才发现是SVN惹的祸,我们的so文件压根就没有出现在版本库中,之所以会这样因为*.so文件是SVN客户端默认忽略的文件类型。
知道了原因接下来就好办了,在SVN的setting中取消so文件类型的忽略,然后重新commit和update一次,就成功运行了!