Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将预构建的java类包含到android项目中_Android_Eclipse_Maven_Java - Fatal编程技术网

将预构建的java类包含到android项目中

将预构建的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

我正试图在我的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项目时,手动解析所有这些依赖项是非常可笑的


但是,我可以使用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片段。不管是哪种方式,我都可以解决它。我会留下来的。谢谢你的建议。