zoukankan      html  css  js  c++  java
  • 关于Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY

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

     

    上周终于还是买了开发板了  把上次项目分到的钱都花掉了

    然后开始把项目在开发板上测试

    开发板带的有USB接口的GPS装置

    但是经过我的测试 此GPS无法在Odroid T开发板上正常工作

    这个问题等到周一和partner碰头了再解决

    然后遇到的第二个问题:

    运用了Google Maps的程序 在开发板中测试都无法安装 并且报错:

    Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]

    从昨天开始解决这个问题 论坛有说是平台不支持的 有说是其他问题的

    尝试了解决方案都未果

    今天无奈之下查找了Android开发的QQ群

    运气很好的是加入了一个群并且认识了“龙虾哥”

    龙虾哥 上海人氏 硕士毕业 目前和一个朋友自行开发Android和iphone项目挣钱

    他在听了我遇到的问题之后开始帮我想解决方法

    方案1:在项目根目录下来添加libs文件夹以及armeabi和armeabi-v7a两个子文件夹

    (因为他是在C平台下开发,然后再用NDK导入)

    对比emulator和真机的system/lib文件夹下面的文件

    把emulator上有而真机上没有的.os文件导出 并且放入之前我们创建的armeabi和armeabi-v7a两个文件夹

    运行 结果失败

    然后继续寻找解决方案

    查看DDMS中的Logcat

    红字标出程序无法加载未知共享库com.google.android.maps.jar

    研究中发现 真机中 system/framework文件夹下缺少两个重要文件:

    com.google.android.maps.jar

    com.google.android.gtalkservice.jar

    开始解决:

    Enter the shell of your device.

    • adb -d shell

    Remount the system partition with read/write permissions.

    • mount -o rw -t yaffs2 /dev/block/mtdblock3 /system

    For me the remount was a bit different. The following did the trick

    • mount -o remount,rw /dev/root /

    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的程序

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

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

    问题解决

    Ps:11月23日补充:

    之前用的开发板是Odroid T,今天换了最新版本的Odroid 7

    Odroid 7安装的Android版本是2.2   同样不带地图

    2.2版本与之前的版本略有不同,大家拷贝是记得必须得用2.2版本的emulator中的

    com.google.android.maps.jar

    注意看2,2版本的emulator的system/framework

    你会发现已经没有了com.google.android.gtalkservice.jar

    所以我们只需要把com.google.android.maps.jar push进你的真机文件夹即可

    然后转入/etc/permissions

    与之前版本不一样,Android2.2不再在platform.xml下更改

    而是直接pull出你emulator的  /etc/permissions/com.google.android.maps.xml

    然后push进你真机的 /etc/permissions

    然后重启真机,这样就可以

    解决之后看看 其实问题并不复杂 但没有解决之前是感觉非常的棘手

    龙虾哥说的好  遇到问题不要急 多研究研究 要有耐心

    在此谢谢龙虾哥的帮助 Thank U

    这也是我写的第一篇开发笔记  以后遇到问题  还会继续写的

    国内遇到此问题 在论坛上的解决方案基本无效

    希望我的日志能给其他人帮助 ^ ^

  • 相关阅读:
    Linux之文件处理命令
    Linux基础命令
    rip实验
    Linux基础之磁盘分区
    mysql安装
    centos Apache、php、mysql默认安装路径
    You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
    Wrong permissions on configuration file, should not be world writable!
    机器会学习么 学习总结
    实验 5 Spark SQL 编程初级实践
  • 原文地址:https://www.cnblogs.com/leaven/p/2553038.html
Copyright © 2011-2022 走看看