• 关于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

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

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

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

  • 相关阅读:
    基于SOA的体系架构设计
    《博客园开发者征途系列》之一——《软件设计精要与模式》
    微软Imagination Festival 2007
    《软件设计精要与模式》源代码下载
    $150等于什么?
    Programming WCF Services
    《博客园开发者征途》.NET 3.x图书系列开幕
    Policy Injection Application Block
    通过实例分析WCF Duplex消息交换
    今天的面试小记
  • 原文地址:https://www.cnblogs.com/leaven/p/2553038.html
Copyright © 2020-2023  润新知