android手机安装时缺少google map api 的解决方法

有些 android 手机,机器里没有 com.google.android.maps.jar 这个包。

所以当开发使用了 google 
map 
api
的程序时,即使在模拟器上没有问题,但是在真机上无法安装,安装时报 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误。

解决办法可以手动将缺少的文件传输到手机里,但是无法批量处理。
http://www.slatedroid.com/topic/25334-fixing-the-install-failed-missing-shared-library-error/

主要解决:

1. INSTALL_FAILED_MISSING_SHARED_LIBRARY
2. 向没有Google APIs的手机内核注入谷歌服务
3. 在真机上调试Google Maps程序

1)维护两条代码分支:
 一条分支是针对于内置有Google Map add-on的Android真机,另一条分支是没有内置有Google Map add-on的Android真机。 但是这样做会增加维护成本,而且粗心的用户可能会在自己的机器上安装了不匹配的分支,从而降低了软件的友好度。
 2)仍然只保留一条代码分支:
 国外一位大牛指出:在<uses-library>标签中还包含了一个没有公布的属性"android:required",你可以将com.google.android.maps库的这个属性设置为false,即:

<!-- The "android:required" attribute was added in API level 5 (Android 2.0) -->
<uses-library android:name="com.google.android.maps" android:required="false" />
 这代表如果在目标机器上内置了Google Map add-on,则可以正常使用应用;如果目标机器没有内置Google Map add-on,也可以成功安装应用。但是开发人员需要在代码中自行判断Google Map add-on是否可用,举例如下:
try {
    Class.forName("com.google.android.maps.MapActivity");
} catch (Exception e) {
    Toast.makeText(MainActivity.this, "Oop! google地图不可用", Toast.LENGTH_SHORT).show();
    return;
}
Intent intent = new Intent();
intent.setClass(MainActivity.this, MyMapActivity.class);
startActivity(intent);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值