91

当我尝试运行使用 Google API 的 android 应用程序时,出现以下错误

[2009-07-11 11:46:43 - FirstMapView] 安装错误:INSTALL_FAILED_MISSING_SHARED_LIBRARY
[2009-07-11 11:46:43 - FirstMapView] 请检查 logcat 输出以获取更多详细信息。
[2009-07-11 11:46:44 - FirstMapView] 发射取消!

谁能帮我解决这个错误?

4

14 回答 14

93

INSTALL_FAILED_MISSING_SHARED_LIBRARY在 Android 版 Google 地图上解决错误,请执行以下操作:

  1. 安装 Google 地图 API。这可以在 Eclipse Windows/Android SDK 和 AVD Manager -> Available Packages -> Third Party Add-ons -> Google Inc. -> Google APIs by Google Inc., Android API X 中完成

  2. 从命令行创建新的 AVD。这可以通过列出目标(android list targets)来完成,然后 android create avd -n new_avd_api_233 -t "Google Inc.:Google APIs:X"

  3. 然后在 Eclipse Windows/Android SDK 和 AVD Manager -> New... -> 中创建 AVD(Android 虚拟设备)(名称:new_avd_X,目标:Google APIs (Google Inc.) - API Level X)

    IMPORTANT:您必须使用 Target 作为 Google API (Google Inc.) 创建您的 AVD,否则它将再次失败。

  4. 在 Eclipse File/New/Android Project 中创建 Android Project 并选择 Google APIs Build Target。

  5. 在 <application> </application> 标签之间添加 <uses-library android:name="com.google.android.maps" />。

  6. 将项目作为 Android 应用程序运行。

如果错误仍然存​​在,那么你仍然有问题,如果它有效,那么这个错误永远在你身后。

于 2011-08-23T22:41:01.230 回答
32

就我而言,这是该应用程序默认为可穿戴目标设备。

我在Manifest中删除了对 Wearable 的引用,问题就解决了。

<uses-library android:name="com.google.android.wearable" android:required="true" />

于 2020-08-30T09:05:28.320 回答
30
<uses-library
            android:name="com.google.android.maps"
            android:required="false" />

如果 required 是真的,也许你需要改变

于 2014-06-11T10:41:02.137 回答
7

您可以在 Google API 模拟器上运行它来解决它。

要在 Google API 模拟器上运行,请打开您的 Android SDK 和 AVD 管理器 > 可用软件包 > Google Repos > 选择您需要测试的那些 Google API 级别。

安装它们后,将它们添加为虚拟设备并运行。

于 2011-05-21T05:07:27.693 回答
4
  1. 打开日食
  2. 去:

    项目>属性>Android>选择:google APIs Android 4.0.3

  3. 点击图标:

    Android Virtual Device Manager>Edit> Slect box in Tabget>Google APIs APIsLevel15
    并选择 Built-in: is WQVGA400 > Edit AVD > Start

于 2013-02-27T05:41:41.897 回答
4

//检查你的清单

<uses-library
        android:name="com.google.android.wearable"
        android:required="true" />

//这是为我添加的,同时错误地添加了导致问题的新活动。

于 2021-03-17T01:46:49.107 回答
2

安装到实际设备时出现同样的错误。可以在以下站点找到更多信息和将缺少的库加载到设备的解决方案:

修复 INSTALL_FAILED_MISSING_SHARED_LIBRARY 错误

要正确设置,需要将 2 个密钥文件复制到系统中:

com.google.android.maps.xml

com.google.android.maps.jar

这些文件位于以下任何 Google 应用程序包中:

http://android.d3xt3...0120-signed.zip

http://goo-inside.me...0120-signed.zip

http://android.local...0120-signed.zip

这些链接不再有效,但如果您有 Google Maps API v1,您可以在 android sdk 中找到这些文件

解压缩这些文件后,您希望将文件复制到您的系统,例如:

adb remount

adb push system/etc/permissions/com.google.android.maps.xml /system/etc/permissions

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

adb reboot
于 2012-06-26T00:56:54.773 回答
2

这可能由于以下原因而发生 -

  1. 在您的清单文件中检查“<uses”,例如可穿戴设备、电视、平板电脑等。
  2. BUILD.GRADLE 中需要一些代码实现,您可能错误地删除了这些代码

因此,通过删除实现或添加它们可以消除此错误。您可以删除 android 清单文件中的“使用”代码。

例子:

  1. 这浪费了我1个小时,因为我错误地添加了一类可穿戴类型,当然,我安全地删除了使用折射器但滴滴没有对清单文件进行更改。

  2. 我在我的 java 项目中使用了 firebase crashlytics 代码,但我错误地在 buld.gradle 中删除了它。如下:实施 'com.google.firebase:firebase-crashlytics:17.1.1'

解决方案主要在 BUILD>GRADLE 或 AndroidManifest.xml 中。

于 2020-07-30T11:11:53.007 回答
1

我正在开发一个 2.2 版的应用程序,API 版本将在第 8 版......有同样的错误,错误告诉我这是谷歌地图 API,我们所做的只是改变我的 ADV 为我的项目 API 2.2 以及API。

这对我有用,并找到了所需的库 API。

于 2013-07-04T21:44:21.397 回答
0

当您尝试在模拟器上运行应用程序时会发生这种情况。模拟器没有共享的谷歌地图库。

于 2012-02-26T11:45:31.033 回答
0

解决此问题的另一种方法是安装所需的缺失库。

您可以在此处下载库并查看如何安装。

于 2012-07-20T19:24:00.110 回答
0

当我尝试这些解决方案时。
我解决了:
创建一个新的虚拟设备(选择 Google APIs(Google Inc)-API Level 15 replace android 4.0.3-APILevel 15)然后再次运行。它解决了。

我想是因为设备没有google apis~

IDE:android-studio 操作系统:ubuntu 12.04

于 2013-12-10T12:17:32.370 回答
0

通常,这意味着应用程序安装/调试在不支持某些所需库的设备(包括虚拟设备)上(可能与 Android 版本或硬件有关)

检查设备<uses-library>manifest是否支持所有库中的元素。就我而言,它是 EDMK(Zebra 条码扫描仪库)。

注意:Google Play 使用<uses-library>您的应用清单中声明的​​元素从不满足其库要求的设备中过滤您的应用。

选项 a)

如果库是意外添加的(它的特定类未在您的应用程序中使用),请删除元素<uses-library>.

选项 b)

如果库是可选的,添加android:required="false"<uses-library>. 如果某些部分需要此库,您可能需要在代码中添加验证。

选项 c)

如果需要该库,请使用其他设备或创建支持该库的虚拟设备 (AVD)。

于 2021-05-21T15:58:11.490 回答
0

而不是删除

<uses-library android:name="com.google.android.wearable" android:required="true" //>

在允许的情况下,只需设置

android:required="true" 为 false。

于 2021-10-30T13:53:59.610 回答