今天写了一个android关于google map的应用,模拟器上运行一切正常(就是个测试程序),但是在真机上报错无法加载提示INSTALL_FAILED_MISSING_SHARED_LIBRARY。
网上查了不少资料,原因无非两种:
情况一:如果你用模拟器调试程序(网上抄的)
首先检查AndroidManifest.xml,确保已经写了
<uses-library android:name=”com.google.android.maps” />
其次确保你新建工程的时候 Build Target 选择的TargetName不是Android 而是其版本对应的Google APIs。
最后新建模拟器,target同样选择Google APIs。
这样此问题基本解决。你可以正常运行于模拟器上了。如果运行之后地图无法显示,而是现实灰色表格。那么说明你的
android:apiKey 不对。重新注册apiKey(具体方法看api或者去论坛,这里不再赘述)。
情况二:真机调试(也是抄的做了一点整理)
当你在测试机上运行没有问题时说明你的工程和配置文件都没有问题,那么问题出在机器上。
原因是system/framework下缺少文件com.google.android.maps.jar 包。解决方法如下:
1、从模拟器的DDMS中导出com.google.android.maps.jar
(此处参考http://android.tgbus.com/Android/androidnews/200901/173949.shtml
(各个系统如何进入adb shell 参考:悲剧刚才那个网页被我关了)
2、进入设备shell: adb -d shell (记得 -d)
3、获取/system读写权限
mount -o remount,rw rootfs /system/
4、将步骤一中导出的包导入到机器中adb -d push com.google.android.maps.jar /system/framework/
5、给这个包增加权限
把真机中/etc/permissions/platform.xml文件取出来编辑
adb pull /etc/permissions/platform.xml
在文件最后增加
<library name="com.google.android.maps" file="/system/framework/com.google.android.maps.jar"/>
再把这个文件push回去真机中
adb push platform.xml /etc/permissions/
重启手机应该就好了