将预构建的java类包含到android项目中
我正试图在我的android项目中包含一个maven java项目。maven项目是greader的非官方项目,它允许开发人员访问google reader帐户,并处理所有http事务和URI/URL构建,使从google reader获取提要和项目对开发人员透明。该项目可在以下位置获得: 该代码最初是为标准jdk编写的,并使用来自java.net的类,这些类不是标准Android SDK的一部分。事实上,我试图手动解决所有依赖项,但在包含类be.lechtitseb.google.reader.api.util.AtomUtil.java所需的com.sun.syndication片段时遇到了问题。。。我正在使用的标准jdk 1.6中的java.net中的一些类不在Android SDK中。此外,当我编译一个非常简单的maven项目时,手动解析所有这些依赖项是非常可笑的将预构建的java类包含到android项目中,android,eclipse,maven,java,Android,Eclipse,Maven,Java,我正试图在我的android项目中包含一个maven java项目。maven项目是greader的非官方项目,它允许开发人员访问google reader帐户,并处理所有http事务和URI/URL构建,使从google reader获取提要和项目对开发人员透明。该项目可在以下位置获得: 该代码最初是为标准jdk编写的,并使用来自java.net的类,这些类不是标准Android SDK的一部分。事实上,我试图手动解决所有依赖项,但在包含类be.lechtitseb.google.reader
但是,我可以使用maven编译源代码,而不会产生任何问题。我如何将这个依赖于完整jdk的maven项目包含到我的android项目中,使它能够编译,以便我可以从我的android项目访问GoogleReader类?另外,我没有专业知识重写整个api来与标准的Android SDK一起使用。如果第三方库需要标准的JRE类来编译,它可能也需要运行这些类。尝试从构建中删除访问不可用JRE类的第三方方法/类。如果您的应用程序仍然使用精简库,则在许可证与更改兼容的情况下交付。
很可能,对于第三方库,您唯一的其他选择是用变通方法替换有问题的JRE调用。问题不是构建/编译代码,对吗?正如你所说,它编译得很好。它直接或间接地使用Android中不可用的类。而且,我确实强调,即使它可以编译,也不意味着它将在Android上运行,因为它在运行时可能需要不在Android中的类。所以问题是如何将这些类放入.apk中 通过将第三方库的副本添加到外部libs,可以让Android构建注入这些副本。然而,我不知道把JDK的rt.jar文件放在那里是否有效,因为它包含了所有java.net类和其他所有内容。您的应用程序将拥有标准Java库类的第二个副本,这些类在某些方面几乎肯定不兼容 我强烈怀疑它不会起作用,或者如果它碰巧发生,它会很脆弱
修改库这么难吗?如果只有几个java.net类不可用,您可以在另一个问题中征求关于如何解决没有这些类的问题的意见。因为实际上根据我的经验,Android拥有所有的java.net类,所以我想知道缺少了什么。不幸的是,将Eclipse与M2Eclipse/maven一起使用存在几个问题,最值得注意的是ADT没有将JAR文件依赖项打包到APK文件中 幸运的是,我已经编写了一个插件来解决这些问题:
我基本上必须重做所有的工作,以准确地找出哪些依赖关系给我带来了问题。greader api使用jaxen org.jaxen.*它依赖于dom4j org.dom4j.*它依赖于java.beans中不在Android SDK中的某些类,因此有问题的包是jaxen和dom4j,它们依赖于Android中不可用的JDK片段。不管是哪种方式,我都可以解决它。我会留下来的。谢谢你的建议。