【android开发】解决INSTALL_FAILED_MISSING_SHARED_LIBRARY问题.面向菜鸟中的战斗鸟,零基础人士

来源:互联网 发布:webpack 压缩混淆js 编辑:程序博客网 时间:2024/04/25 09:19

INSTALL_FAILED_MISSING_SHARED_LIBRARY问题,困扰得心烦意乱。找了网上的很多文章,解决方法倒是看着不复杂,不过在解决过程遇到很多新的名词,新的东西。本人便是初级战斗鸟一枚。以下便列出战斗鸟战胜上述问题的经经过过。(鸟到adb命令不能识别都得google !!)

首先,奉上网上盛行的解决方案。(转载,如有版权问题,请作者提出,立马分分钟删帖。)

个人觉得这哥们讲得比较有条理。

转自:http://blog.163.com/gobby_1110/blog/static/29281715201010146177879/

1.从emulator的system/framework文件夹下导出这两个文件

1.1 直接通过DDMS导出

1.2 通过adb命令导出

2. 把导出的这两个文件导入Odroid 7的system/framework文件夹下

2.1 直接通过DDMS导出

2.2 通过adb命令导出:

  • adb -d push com.google.android.maps.jar /system/framework/

或者

  • adb push com.google.android.maps.jar /system/framework/com.google.android.maps.jar
  • adb push com.google.android.gtalkservice.jar /system/framework/com.google.android.gtalkservice.jar

3. 给这两个文件添加权限

把真机中/etc/permissions/platform.xml文件取出来编辑:

<permissions>
...
<!-- This is a list of all the libraries available for application code to link against. -->
<library name="android.awt" file="/system/framework/android.awt.jar"/>
<library name="android.test.runner" file="/system/framework/android.test.runner.jar"/>
<library name="com.android.im.plugin" file="/system/framework/com.android.im.plugin.jar"/>
<library name="com.google.android.maps" file="/system/framework/com.google.android.maps.jar"/>
<library name="com.google.android.gtalkservice" file="/system/framework/com.google.android.gtalkservice.jar"/>
</permissions>
然后再把这个platform.xml文件push回真机的/etc/permissions文件夹中

4.重启真机硬件

并且

  • adb stop


  • adb start

5.尝试安装带有Google Maps的程序

期间又重启了一次开发板(真机)

(如果没有解决再次重启试试)

问题解决

到这里,如果你已经解决问题,这篇文章便没有必要再看下去了。

以下是一些次生问题(或许是战斗鸟才会有疑惑的问题,高手绕道!不过,这也正是本文的重点所在)

【问题1】.从emulator导入导出文件,这个怎么搞。继续google。

这个,参考的文章图片比较多,就不往这里贴了。网址奉上。

http://www.crifan.com/import_file_into_android_adt_avd_through_ddms/

站在前人肩膀,顺利从emulator导出maps.jar文件。紧接着,导入真机,问题阴魂不散的来了。

“Failed to push selection: Read-only file system”

这个英语超级好认。文件系统只读,所以写不了,方法也就很明显了。添加写的权限。

【问题2】.用adb命令添加写权限。http://5200415.blog.51cto.com/3851969/765834
菜鸟的悲剧发生了。系统不认adb命令。这可真心不科学,android sdk可是装得杠杠的,adb不就是sdk的一部分嘛。
具体原因也不深究了,重要的是搞得能用。按照之前配了n次Java jdk环境变量的经验看,应该是adb所在路径没有在环境变量里。
我的电脑,属性,高级,环境变量,path,还真没有。。于是加之。
死命奔到D:\Program Files\Android SDK\android-sdk_r22.0.1-windows\tools (注:D:\Program Files\Android SDK\android-sdk_r22.0.1-windows\ 是我android安装路径,比较长)。傻眼了。压根木有adb.exe。第一感觉是怀疑自己android sdk没有正确安装,第二反应是试过那么多demo了,sdk应该是没问题的。然后google兄又出来拯救世界了。

【问题3】.adb命令系统不能识别
第一个找到的文章是这个:http://blog.csdn.net/chenglibin1988/article/details/6561802。
个人觉得略微不科学。直接复制的话,要以后android版本变了,adb升级啥啥的,岂不是得重新覆盖?然后,真正的救世主才姗姗来迟。
http://blog.csdn.net/huangximin1990/article/details/9492129原来adb不是住在tools里,它家在更加高档的小区platform-tools。如此,又一个问题解决。解决了adb命令识别问题,回到【问题2】。按照指示cmd下adb shell mount -o remount rw / 。又出现问题,“operation not permitted”。google兄提示是手机还没得到root权限。

【问题4】.获得root权限。于是,又展开root权限保卫战。公司测试机是中兴U960S。得到root权限可真心费了大力气了。各种主流一键root软件失效。最后幸运看到这个文章。http://bbs.hiapk.com/thread-4323300-1-1.html。解决了root权限问题。再次返回【问题2】。发现命令adb shell mount -o remount rw / 并不是万能的。本文第一个链接所说的/system/framework/目录依旧是没有写权限。于是,shell命令发挥作用的时候到了。

【问题5】.更改指定文件夹权限。   cmd下“adb shell”,会看到一个"$";再“su”,看到"#";然后可以先"ls"看下文件列表(当然,也可以不要);然后 “chmod 777/system/framework/”,cmd会再次显示"chmod 777 /system/framework/"。这样,就获得了/system/framework/的写权限。然后,没有然后了。一切搞定(记得再回到第一个链接处,还有更改permissions.xml和重启等操作)

再次声明,本文所转文章若是不喜欢呆在这里,请作者提出来,本人立马删帖道歉!
谢谢观看,the end !!


原创粉丝点击