如何解决如何使用Android不支持的Java核心库?
| 在Android中使用核心类时遇到麻烦 Dx 处理“ javax / xml / bind / Binder.class”时遇到麻烦 我确实需要javax.xml。*中的类来开发Web服务,但是 Android并不完全支持它。当我进口这些罐子的时候 没有在eclipse中显示的编译错误,但是DX无法处理它。 在互联网上搜索后,据说我们可以使用--core- 库或使用jarjar重新打包。 我还没有找到在Eclipse中添加DX选项的任何教程。一世 感谢您为解决该问题提供的任何帮助。解决方法
从Dx得到的错误仅基于您要导入的lib的Java程序包名称,而没有其他原因。
该消息可以归纳为:如果您在java。*或javax。*名称空间中导入一个库,则很可能它依赖于仅作为JDK一部分提供的其他\“ core \”库,因此无法在Android平台上使用。这实际上是在阻止您做一些愚蠢的事情,这在您看到该消息的99%的时间内都是准确的。
当然,现在只是因为Java包以java。*或javax。*开头并不意味着它依赖于JDK本身。它可能在android上工作得很好。要解决愚蠢性检查,请在dx中添加--core-library选项。将
$ANDROID_HOME/platform-tools/dx
的最后一行从更改为
exec java $javaOpts -jar \"$jarpath\" \"$@\"
至,
exec java $javaOpts -jar \"$jarpath\" --core-library \"$@\"
就我而言,我包括一个依赖于Jackson的库,而后者依赖于JAXB。对我来说,重写愚蠢性检查是可以接受的,因为该库对Jackson的使用仅用于JSON,而不能用于XML序列化(我仅包括JAXB API库,而不包括impl)。当然,我希望有一个更干净的方法可以解决此问题,但是重新编写顶级库以避免使用Jackson并不是一种选择。
,这些类是针对与android dalvik不兼容的jvm编译的。您将需要获取源代码,而不是jar文件,并将其编译为为Android编译的jar文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。