【问题标题】:Shared library missing in android.android 中缺少共享库。
【发布时间】:2011-01-18 00:15:38
【问题描述】:

02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!

我在 logcat 中遇到了这个异常。

谁能指导我?

【问题讨论】:

  • 请详细说明。这是模拟器的吗?设备?什么 SDK 版本?

标签: android android-mapview


【解决方案1】:

正如 CommonsWare 所说,您的模拟器缺少库。 Google Maps Library 的文档Overview page 提供了有关如何为模拟器创建正确类型的虚拟设备的信息。要点是:

使用不带任何选项的 android 命令启动 AVD 管理器。如果您在 Eclipse/ADT 中开发,您还可以从 Window > Android SDK 和 AVD Manager 访问该工具。

  1. 单击“新建”按钮开始创建新的 AVD。
  2. 在出现的对话框中,指定 AVD 的名称并选择您希望 AVD 使用的系统映像目标。选择“Google API (Google Inc.)”目标之一,确保选择 API 级别与应用清单中的 android:minSdkVersion 属性匹配的版本,如上所述。
  3. 配置其他选项,然后单击“创建 AVD”。

创建完 AVD 后,您可以从 AVD 管理器 UI 运行它,也可以使用模拟器的命令行界面。如果您在 Eclipse 中开发,您可以配置一个运行配置来启动 AVD 并在其上安装您的应用程序。

有关 AVD 的更多信息,请参阅 Android 开发者网站上的Android Virtual Devices

【讨论】:

    【解决方案2】:

    我在真实设备上遇到了类似的问题。经过一番谷歌搜索后,我找到了这个答案

    fixing missing shared library。事实证明,在某些自定义 rom 上缺少 comp.google.android.map 库,您必须手动安装它。

    • 下载 googleapps
    • 解压两个文件
    • system/etc/permissions/com.google.android.maps.xml
    • system/framework/com.google.android.maps.jar
    • 重新挂载 /system 文件系统 rw (mount -o rw,remount /system)
    • 复制文件
    • 对它们执行 chmod 644
    • 重启

    【讨论】:

    • 我认为这是真正的解决方案,其他只是解释,这甚至适用于除了模拟器之外的真实设备
    • 太棒了.. 谢谢.. 这是我找到的唯一真正的答案。这应该被接受并投票 100 次..
    【解决方案3】:

    这个错误发生在我的实际设备上,而不是像其他答案那样的 AVD。在我的例子中,我在 Nexus S 上运行,它有一个没有安装 Google 地图的自定义 ROM。

    我已阅读elsewhere ,com.google.android.maps 共享库与 ROM 本身捆绑在一起,而不是作为 APK 的一部分捆绑在一起。

    因此,我的解决方案是恢复到安装了 Google 地图的库存 ROM。

    顺便说一句,此线程的标题是指在 DDMS LogCat 中发现的错误。大多数用户会看到的第一个错误(在检查 LogCat 之前)将出现在 Eclipse 的控制台中:

    Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY 
    Please check logcat output for more details.
    

    【讨论】:

      【解决方案4】:

      您的模拟器缺少 Google API。创建一个包含 Google API 的新 AVD,此错误应该会消失。

      【讨论】:

      • 感谢您的回复。但仍然得到那个例外。你能告诉我一步一步的过程吗..
      【解决方案5】:

      作为 jfritz42,我在具有自定义 ROM (Cyanogenmod) 的真实设备上遇到此错误。该错误是由于我没有安装Google Apps package 引起的,因为它包含很多让我烦恼的应用程序。但是,有一个解决方案如何安装 google.maps 库,而无需使用此软件包中的 19 个 Google Apps 来堆积您的系统。只需下载软件包(zip 文件)并从该 zip 中的系统/应用程序中删除所有 .apk 文件。之后,您可以使用 ROM 管理器或通过恢复模式安装 zip。然后你应该在你的系统上安装了地图库。此软件包中包含的 Google Apps(例如地图应用)可以在之后单独安装。

      【讨论】:

        【解决方案6】:

        如果使用真实设备,请尝试从清单文件中删除:

        <uses-library android:name="com.google.android.maps" />

        【讨论】:

          【解决方案7】:

          在正确设置 AVD 并正常工作后,我遇到了此错误。 AVD 仍在使用 Google API,我可以在 Eclipse 中看到对地图库的引用。我发现解决此问题的唯一方法是按照 fiXedd 的建议删除 AVD 并创建一个新的。

          【讨论】:

            【解决方案8】:

            fixedd(见上文)是正确的。

            您可以编辑已创建的设备或创建新设备。当您在 AVD 管理器中创建或编辑设备时,而不是选择这种版本目标:

            Android x.x.x - API 级别 x

            只需使用这种类型:

            Google API (Google Inc.) - API 级别 x

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-10-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多