【问题标题】:Error Importing Jar to Android Project将 Jar 导入 Android 项目时出错
【发布时间】:2012-04-14 20:43:39
【问题描述】:

这是新的 Android SDK 最近出现的问题。

现在 Android SDK 在将外部 jar 导入 apk 包时使用 ANT 约定,外部 jar 必须位于“lib”文件夹中,并且 SDK 会从该文件夹中导出 jar。

我的问题是当我添加我的 jar 并运行我的项目时,我收到以下消息:

处理“javax/transaction/HeuristicCommitException.class”的问题:

在以下情况下对核心类(java.* 或 javax.*)的不明智或错误使用 不构建核心库。

这通常是由于无意中包含了核心库文件 您的应用程序的项目,当使用 IDE(例如 Eclipse)时。如果 你确定你不是故意定义一个核心类,那么这个 是对正在发生的事情的最可能的解释。

但是,您实际上可能正在尝试在核心中定义一个类 命名空间,您可能已经获取了它的来源,例如,从 非安卓虚拟机项目。这肯定不会 工作。至少,它会危害您的应用程序与 平台的未来版本。它也经常是有问题的 合法性。

如果你真的打算建立一个核心库——这只是 适合作为创建完整虚拟机分发的一部分, 而不是编译应用程序 - 然后使用 “--core-library”选项来禁止显示此错误消息。

如果您继续使用“--core-library”,但实际上是在构建一个 应用程序,然后预先警告您的应用程序仍然会失败 在某个时候构建或运行。请为愤怒的顾客做好准备 例如,他们发现您的应用程序停止运行一次 他们升级他们的操作系统。你将为此负责 问题。

如果您合法地使用某些恰好位于核心中的代码 包装,那么您拥有的最简单安全的替代方法是重新包装 那个代码。也就是说,将有问题的类移动到您自己的包中 命名空间。这意味着它们永远不会与核心冲突 系统类。 JarJar 是一个可以帮助您完成这项工作的工具。 如果你发现你不能做到这一点,那么这表明你 你所走的道路最终会导致痛苦、苦难、悲伤, 和悲叹。

我已经在此处和其他论坛上阅读过此消息,有人说 Android.jar 是问题,因此删除将解决它。

但我找不到那个Android.jar,除了无法删除的Android库。

这个关于将库导入到 android 的问题让我很生气,因为我的应用程序运行良好。

【问题讨论】:

    标签: android dex


    【解决方案1】:

    我在第一次更新时也看到了很多问题,但最终能够让它正常工作。基于最终对我和朋友有用的一些建议:

    确保您的外部 jar 文件位于项目基础目录的“libs”文件夹中(注意此处的“s”,而不是“lib”)。如果您进行任何更改,请务必刷新项目并清理(如果未设置为自动构建,则重新构建)。

    在 Java Build Path > Libraries 选项卡下的项目属性中,删除除 Android X.X.X 和 Android Dependencies 节点之外的所有内容。同样,如果您进行任何更改,请务必刷新项目并清理(如果未设置为自动构建,则重新构建)。

    如果您已为您的项目及其在工作区中使用的所有库项目完成此操作,但仍然遇到问题,请尝试从 Java 构建路径中删除所有 Android 库项目(从项目属性 > Android)以及所有库(这次包括 Android X.X.X 和 Android 依赖项),清理,然后更改 Android 版本/应用/更改回以强制重建。 (从您的基础库项目开始对每个项目执行此操作,只有在构建无错误后才将它们添加到您的其他项目中)。

    希望对您有所帮助。

    【讨论】:

    • 谢谢 :) 我解决了(终于!!)删除了 Android SDK 中包含的几个 jars
    • 这行得通。另一种(更激进的)方法是备份库并删除其中的所有内容,然后一次重新引入文件
    【解决方案2】:

    一旦尝试清理您的项目并重新构建它...它可能会帮助您...因为它可以帮助我...我的新 sdk 也有同样的问题...

    【讨论】:

      【解决方案3】:

      当我使用 Maven 构建时,我在一个测试项目中遇到了这个错误。我通过添加解决了它

      <scope>provided</scope>
      

      到 android 测试库。

          <dependency>
              <groupId>com.google.android</groupId>
              <artifactId>android-test</artifactId>
              <version>4.1.1.4</version>
              <scope>provided</scope>
          </dependency>
      

      【讨论】:

        猜你喜欢
        • 2014-01-12
        • 2016-07-23
        • 2015-05-13
        • 1970-01-01
        • 2012-12-24
        • 2015-05-28
        • 2015-05-21
        • 1970-01-01
        相关资源
        最近更新 更多