您的位置:首页 > 大数据 > 人工智能

关于INSTALL_FAILED_MISSING_SHARED_LIBRARY错误的解决方法

2013-12-13 23:12 525 查看
最近在做google maps的开发,当应用安装到测试机上时报出了Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY的错误,导致应用无法安装到手机上,通过一阵google之后,才发现之所以会产生这个错误,原来是测试机缺少了com.google.android.maps.jar包,木有办法,很多厂商为了打造自己的“OS”,将Android改的面目全非,尤其是国内厂商的手机,更是将google的服务阉割的一干二净。

至于解决方法嘛,网上不少网友采用的是将这个缺失的jar包手动copy到sysmem/framework目录下,具体怎么做,这里就不在详细叙述了,感兴趣的童鞋可自行google。在此,韬哥只想说一句,这种方式在自己测试时或许还可行,但当一款应用真正发出去的话,你是很难将这个jar包copy到sysmem/framework目录下的,除非用户的手机是已经Root过的,而且你的应用还获取了Root权限。可以说遇到这种情况,基本上无解,也就是google
map无法集成了,这可能也是google帝国为了保证自家服务不被轻易移除的一种考虑吧。但是由于报出Installation
error: INSTALL_FAILED_MISSING_SHARED_LIBRARY这个错误时,会导致应用无法安装到手机上,怎么来避免这个问题呢?具体的作法是在user-library标签里,设置android:required="false"
,这样就可以让应用安装上去了。

真相在图中:



应用安装到手机上后,下一步就是采取Plan B来代替google map无法使用的问题,如果逻辑简单的话,可以直接使用WebView加载google map,这就需要在代码中判断只有缺失com.google.android.maps.jar这个包的手机,才使用webview,具体可以使用取巧的方式,就是加一个try...catch...

韬哥就在这写伪代码了,相信各位童鞋是能看得懂的:

try {
startActivty(new Intent(this, MapViewActivity.class));
} catch (Exception e) {
e.printStackTrace();
startActivity(new Intent(this, WebViewActivity.class));
}


MapViewActivity假设就是集成了google
map的界面,剩下的工作就自己去处理吧,韬哥只能帮你们到这了。。。

Just enjoy yourself!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐