45

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

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

谁能指导我?

4

8 回答 8

65

正如 CommonsWare 所说,您的模拟器缺少库。Google Maps Library 文档的概述页面包含有关如何为模拟器创建正确类型的虚拟设备的信息。要点是:

使用不带任何选项的 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 Manager UI 运行它,也可以使用模拟器的命令行界面。如果您在 Eclipse 中进行开发,您可以配置一个运行配置来启动 AVD 并在其上安装您的应用程序。

有关 AVD 的更多信息,请参阅Android 开发者网站上的Android 虚拟设备。

于 2010-02-18T00:42:26.523 回答
13

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

修复丢失的共享库。事实证明,在某些自定义 rom 上缺少 comp.google.android.map 库,您必须手动安装它。

  • 下载谷歌应用程序
  • 提取两个文件
  • 系统/etc/permissions/com.google.android.maps.xml
  • 系统/框架/com.google.android.maps.jar
  • 重新挂载 /system 文件系统 rw (mount -o rw,remount /system)
  • 将文件复制到
  • 对它们执行 chmod 644
  • 重启
于 2014-02-02T17:05:25.353 回答
10

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

我在其他地方读到com.google.android.maps 共享库与 ROM 本身捆绑在一起,而不是作为 APK 的一部分捆绑在一起。

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

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

Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY 
Please check logcat output for more details.
于 2011-07-11T21:50:31.593 回答
8

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

于 2010-02-17T18:42:55.030 回答
4

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

于 2011-08-31T05:49:20.287 回答
2

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

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

于 2013-04-21T08:46:01.680 回答
0

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

于 2011-05-24T20:29:46.590 回答
0

fixedd(见上文)是正确的。

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

Android xxx - API 级别 x

只需使用这种类型:

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

于 2012-04-04T11:03:04.830 回答