部署apk时重复文件

时间:2011-11-12 10:27:22

标签: android maven-2 jetty

这个问题似乎出现在一些人身上,但由于某种原因,我无法应用其他线程中建议的解决方案......

我正在尝试使用嵌入式网络服务器构建一个简单的Android应用程序。如果码头选择的服务器。我正在使用maven来管理maven-android-plugin的依赖项。我已将jetty-server v8.x添加为默认范围的依赖项。当我尝试将apk部署到沙箱时出现错误

找到APK的重复文件:about.html

所以有问题的文件来自jetty包,或者更确切地说是在两个jetty包中找到,一个是jetty-server的依赖。其他线程似乎建议我从一个罐子或另一个罐子中删除文件,但这不是一个可扩展的解决方案,因为我不是罐子的所有者。

这个问题有更普遍的解决方案吗?管理冲突并构建或部署时间的东西?

我应该注意,我是一个Java noob,并且已经使用了NetBeans和maven路由,因为这是我熟悉的工具包。

4 个答案:

答案 0 :(得分:4)

好的,找到了。解决方案是使用以下命令构建

mvn android:deploy -Dandroid.extractDuplicates=true

答案 1 :(得分:2)

有几个问题:

首先,要集成Jetty,您的项目将需要一个pom.xml文件。 Android APK(原样)不知道如何在没有某种桥接的情况下解决具有Maven依赖关系的pom。因此,您需要在Eclipse上安装一些用于Pom管理的插件。按照此处的说明操作:http://rgladwell.github.com/m2e-android/ (我发现使用此处描述的方法创建新项目比使用我现有的Android应用程序转换为Maven项目更容易,但我相信它会以任何方式工作。)

其次,一旦你安装了这个,你将不得不确保你的pom.xml包含必要的依赖项,构建目标和变量。所以,打开你的pom.xml,确保你有以下内容:

  1. 在“构建”节点中:

    sourceDirectory - > SRC

    defaultGoal - >安装(我想......)

  2. 在“依赖项”节点中:

    ...所有jetty / cometd依赖项(org.cometd.java,org.eclipse.jetty等)

  3. 第三,您应该知道不能单击绿色运行按钮并通过ADB启动应用程序。你必须以maven的方式安装它(Run As - > Maven build / install / test / whatever)

答案 2 :(得分:1)

你应该打开war文件并检查你是否真的有两个about.html文件。前段时间我的war文件中有两个web.xmls。如果您确实有重复项,那么您应该尝试排除这些文件。

也许你的项目中有一个文件,副本是由maven插件生成的。

答案 3 :(得分:0)

我也意识到你可能已经正确使用了android-maven插件。另一个重要提示:在jetty依赖项上将范围更改为运行时。这为我成功构建,而使用默认范围(编译)总是将重复文件丢入APK错误。