这是与Android新SDK相关的最近问题。
现在,Android SDK在将外部jar导入apk包时使用ANT约定,外部jar必须位于“lib”文件夹中,SDK将从该文件夹导出jar。
我的问题是当我添加我的jar并运行我的项目时,我收到以下消息:
处理“javax/transaction/HeuristicCommitException.class”的问题: 在不构建核心库时误用或错误地使用核心类(java.*或javax.*)。
这通常是由于在使用IDE(例如Eclipse)时无意中包含核心库文件在应用程序项目中。如果您确定您没有故意定义核心类,则这是发生的最可能的解释。
但是,您实际上可能正在尝试在核心命名空间中定义一个类,其源代码可能来自非Android虚拟机项目。这肯定不会起作用。至少,它会危及您的应用程序与平台未来版本的兼容性。这也经常存在法律问题。
如果您确实打算构建核心库-这仅适用于创建完整虚拟机分发而不是编译应用程序-则使用“--core-library”选项来抑制此错误消息。
如果您继续使用“--core-library”,但实际上正在构建应用程序,请注意,您的应用程序仍将在某个时候无法构建或运行。请准备好愤怒的客户,例如,一旦他们升级其操作系统,您的应用程序将停止运行。您将对此问题负责。
如果您合法地使用某些代码,这些代码恰好位于核心包中,则您拥有的最简单的安全替代方案是重新打包该代码。也就是说,将相关的类移动到自己的包命名空间中。 JarJar是可能会帮助您完成此任务的工具。如果您发现无法执行此操作,则表明您正在走的道路最终将导致痛苦、苦难、悲伤和哀叹。
我已经在这里和其他论坛上阅读了有关此消息的信息,有些人说Android.jar是问题所在,因此删除它即可解决问题。
但我找不到那个Android.jar,除了不能删除的Android库。
导入库到Android的这个问题让我发疯,因为我的应用程序一直非常好用。
现在,Android SDK在将外部jar导入apk包时使用ANT约定,外部jar必须位于“lib”文件夹中,SDK将从该文件夹导出jar。
我的问题是当我添加我的jar并运行我的项目时,我收到以下消息:
处理“javax/transaction/HeuristicCommitException.class”的问题: 在不构建核心库时误用或错误地使用核心类(java.*或javax.*)。
这通常是由于在使用IDE(例如Eclipse)时无意中包含核心库文件在应用程序项目中。如果您确定您没有故意定义核心类,则这是发生的最可能的解释。
但是,您实际上可能正在尝试在核心命名空间中定义一个类,其源代码可能来自非Android虚拟机项目。这肯定不会起作用。至少,它会危及您的应用程序与平台未来版本的兼容性。这也经常存在法律问题。
如果您确实打算构建核心库-这仅适用于创建完整虚拟机分发而不是编译应用程序-则使用“--core-library”选项来抑制此错误消息。
如果您继续使用“--core-library”,但实际上正在构建应用程序,请注意,您的应用程序仍将在某个时候无法构建或运行。请准备好愤怒的客户,例如,一旦他们升级其操作系统,您的应用程序将停止运行。您将对此问题负责。
如果您合法地使用某些代码,这些代码恰好位于核心包中,则您拥有的最简单的安全替代方案是重新打包该代码。也就是说,将相关的类移动到自己的包命名空间中。 JarJar是可能会帮助您完成此任务的工具。如果您发现无法执行此操作,则表明您正在走的道路最终将导致痛苦、苦难、悲伤和哀叹。
我已经在这里和其他论坛上阅读了有关此消息的信息,有些人说Android.jar是问题所在,因此删除它即可解决问题。
但我找不到那个Android.jar,除了不能删除的Android库。
导入库到Android的这个问题让我发疯,因为我的应用程序一直非常好用。