【问题标题】:<uses-library /> in Android ManifestAndroid Manifest 中的 <uses-library />
【发布时间】:2012-09-20 15:37:28
【问题描述】:

我是 Android 新手,我需要有关此问题的帮助。我正在使用 Eclipse 开发游戏。在我的项目中,我将 AndEngine 和 AndEngine 增强现实添加为库。我在我的 Android 设备上测试该项目,每次我点击使用 AR 类的文本时,它都会强制关闭。有人告诉我在我的 Android 清单文件中注册 AndEngine。我已经检查过了并使用了&lt;uses-library /&gt;。现在,我将这两行放在我的清单中:

<uses-library android:name="org.andengine.extension.augmentedreality" 
           android:required="true"/> 
       <uses-library android:name="org.andengine" 
            android:required="true"/>

但我收到此错误消息:Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY

当我注释掉那些 &lt;uses-library /&gt; 行时,我可以运行该应用程序,但在点击指向 AR 类的文本时它会强制关闭。使用有什么问题吗?或者有什么更好的方法吗?请以易于新手理解的方式发布您的所有建议。谢谢!

【问题讨论】:

  • 你的 lib 目录中有 AndEngine jars 吗?
  • 你应该。这就是 Android 知道如何将 jar 与 apk 打包在一起的方式。
  • 我的朋友告诉我,这是一种添加库的老方法。我实际上已经通过在属性中单击它来添加库。

标签: android android-manifest andengine


【解决方案1】:

&lt;uses-library&gt; 并不意味着在您的应用程序中包含库。它用于根据设备上已有的图书馆(如地图)的可用性来限制 Google Play 中的应用程序可用性。 AndEngine 是一个库项目,因此请通过 Ant、Maven 或您使用的任何 IDE 将其包含在您的构建中。

如果您不熟悉什么是库项目,请点击以下链接:

https://www.vogella.com/tutorials/AndroidLibraryProjects/article.html

【讨论】:

  • 我已经在 Properties > Android 部分添加了库。我的问题是在清单中声明它。
  • 您没有在清单中声明库。您可以声明任何可能存在于您的库中的活动或服务,但不能声明库本身。检查你的 project.properties 文件,看看你是否有这样的一行:android.library.reference.1=../AndEngine
  • 哦,我明白了。我的老师说,既然我用的是AndEngine,我应该在manifest中注册它。所以,我在想有一种方法可以手动完成。在我的 project.properties 文件中,我看到 2 行包含 2 个库。谢谢贾斯汀!
  • 我的问题再次是,当我点击打开使用增强现实的新活动的文本时,它会强制关闭。我从增强现实的 AndEngine 示例中复制了代码。它强制关闭的原因可能是什么?
  • 确保并始终使用 LogCat,以便您可以查看导致崩溃的原因。它通常会告诉您错误是什么以及它与代码中的哪一行相关。
【解决方案2】:

如果这个元素存在并且它的android:required属性被设置 为真,PackageManager 框架不会让用户安装 应用程序,除非该库存在于用户的设备上。

&lt;uses-library&gt; - 指定应用程序必须链接的共享库。该元素告诉系统将库的代码包含在包的类加载器中。

【讨论】:

    【解决方案3】:

    在res文件夹中创建一个libs文件夹,将AndEngine jars放入其中。设置jar的类路径。

    【讨论】:

    • 不行,res下的libs文件夹有错误。
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    相关资源
    最近更新 更多