在androidmaven项目中使用纯javalibs
我有一个Android Maven项目,它使用纯Java libs,在过去的几天里,我与它斗争了好几个小时,无论我做什么,我总是得到以下错误:在androidmaven项目中使用纯javalibs,java,android,eclipse,maven,dependencies,Java,Android,Eclipse,Maven,Dependencies,我有一个Android Maven项目,它使用纯Java libs,在过去的几天里,我与它斗争了好几个小时,无论我做什么,我总是得到以下错误: [INFO] d:\Development-Android\SDKs\Android\platform-tools\aapt.exe [package, -f, -M, D:\Development-Android\Workspaces\Android-Workspace\S-O-D\AndroidManifest.xml, -S, D:\Develop
[INFO] d:\Development-Android\SDKs\Android\platform-tools\aapt.exe [package, -f, -M, D:\Development-Android\Workspaces\Android-Workspace\S-O-D\AndroidManifest.xml, -S, D:\Development-Android\Workspaces\Android-Workspace\S-O-D\res, --auto-add-overlay, -A, D:\Development-Android\Workspaces\Android-Workspace\S-O-D\target\generated-sources\combined-assets\assets, -I, d:\Development-Android\SDKs\Android\platforms\android-7\android.jar, -F, D:\Development-Android\Workspaces\Android-Workspace\S-O-D\target\s-o-d-1.0.0.ap_]
[ERROR] Cannot add source folder
com.android.sdklib.build.DuplicateFileException: Duplicate files at the same path inside the APK
at com.android.sdklib.build.ApkBuilder.doAddFile(ApkBuilder.java:716)
at com.android.sdklib.build.ApkBuilder.processFileForResource(ApkBuilder.java:762)
at com.android.sdklib.build.ApkBuilder.addSourceFolder(ApkBuilder.java:587)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.jayway.maven.plugins.android.phase09package.ApkBuilder.addSourceFolder(ApkBuilder.java:244)
at com.jayway.maven.plugins.android.phase09package.ApkMojo.doAPKWithAPKBuilder(ApkMojo.java:341)
at com.jayway.maven.plugins.android.phase09package.ApkMojo.createApkFile(ApkMojo.java:249)
at com.jayway.maven.plugins.android.phase09package.ApkMojo.execute(ApkMojo.java:207)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
经过长时间的尝试,我能够理解所指的重复文件是输出目录中的重复文件,其中一个是Android类文件夹,另一个是maven输出类文件夹
所以在我继续讨论之前,我已经试着找出答案,但是我找不到答案,Android Maven插件是否支持纯Java JAR的导入
呵呵,是的,非常重要,做清洁安装,而不仅仅是安装
提前感谢,
Adam Zehavi.这可能会有所帮助:
这可能会有所帮助:
我花了很长时间才完全理解这个错误,解决了这个问题,还启用了从Eclipse快捷方式进行调试 因此,在没有任何保证的情况下,这里有一个通用的解决方案,到目前为止,它对我非常有效,而且我到目前为止没有遇到任何问题: 我有一个家长pom: 4.0.0 com.nu.art.software.android 安卓maven家长 1.0.0 聚甲醛 安卓maven家长 http://maven.apache.org 7. 仿真器1 2.1_r1 UTF-8 com.google.android 安卓 ${android.version} 罐子 假如 src /target/android类 com.jayway.maven.plugins.android.generation2 maven android插件 3.0.0-α-2 ${android.sdk} ${android.emulator.name} 符合事实的 符合事实的 符合事实的 maven编译器插件 2.3.2 org.apache.maven.plugins maven依赖插件 2.3 打开 生成源 解包依赖项 假如 符合事实的 **/*.类 ${project.basedir}/bin 符合事实的 符合事实的 org.apache.maven.plugins maven antrun插件 1.3 使类输出 清洁的 跑 符合事实的 正在创建“${project.basedir}/target/classes”目录 它完成了插件中缺少的所有逻辑,支持从Eclipse启动和调试,并解决了我的重复问题。第一次我把res文件夹作为源文件夹,它把事情搞砸了,后来它在依赖项中被复制了 接下来,每个最终项目都有自己的pom,它支持将依赖项复制到Eclipse输出文件夹: 安卓maven家长 com.nu.art.software.android 1.0.0 4.0.0 com.nu.art.software.sod s-o-d 1.0.0 apk S-O-D com.nu.art.software 雷克斯米尔 0.0.1 罐子 编写 com.nu.art.software nu艺术模块管理器 0.0.1 罐子 编写 com.nu.art.software nu艺术发生器 0.0.1 罐子 编写 com.nu.art.software 怒族艺术反思 0.0.1 罐子 编写 org.apache.maven.plugins maven依赖插件 2.3 打开 错误的 最后一句话,在安装最终项目时,这个技巧将所有依赖项提取到Eclipse输出文件夹中,如果我没有弄错的话,它被定义为“/bin”默认ADT插件输出文件夹。 晚的 r、 Eclipse使用数据构建APK,它的输出文件夹wallah中有和APK,F11可以使用它们启动调试器 这同样适用于我。。。我希望这对你也有帮助 分享你的想法。。。
亚当 好吧,我花了很长时间才完全理解这个错误,并解决了它,还启用了从Eclipse快捷方式进行调试 因此,在没有任何保证的情况下,这里有一个通用的解决方案,到目前为止,它对我非常有效,而且我到目前为止没有遇到任何问题: 我有一个家长pom: 4.0.0 com.nu.art.software.android 安卓maven家长 1.0.0 聚甲醛 安卓maven家长 http://maven.apache.org 7. 仿真器1 2.1_r1 UTF-8 com.google.android 安卓 ${android.version} 罐子 假如 src /target/android类 com.jayway.maven.plugins.android.generation2 maven android插件 3.0.0-α-2 ${android.sdk} ${android.emulator.name} 符合事实的 符合事实的 符合事实的 maven编译器插件 2.3.2 org.apache.maven.plugins maven依赖插件 2.3 打开 生成源 解包依赖项 假如 符合事实的 **/*.类 ${project.basedir}/bin 符合事实的 符合事实的 org.apache.maven.plugins maven antrun插件 1.3 使类输出 清洁的 跑 符合事实的 正在创建“${project.basedir}/target/classes”目录 它完成了插件中缺少的所有逻辑,支持从Eclipse启动和调试,并解决了我的重复问题。第一次我把res文件夹作为源文件夹,它把事情搞砸了,后来它在依赖项中被复制了 接下来,每个最终项目都有自己的pom,它支持将依赖项复制到Eclipse输出文件夹: 安卓maven家长 com.nu.art.software.android 1.0.0 4.0.0 com.nu.art.software.sod s-o-d 1.0.0 apk S-O-D com.nu.art.software 雷克斯米尔 0.0.1 罐子 编写 com.nu.art.software nu艺术模块管理器 0.0.1 罐子 编写 com.nu.art.software nu艺术发生器 0.0.1 罐子 编写 com.nu.art.software 怒族艺术反思 0.0.1 罐子 编写 org.apache.maven.plugins maven依赖插件 2.3 打开 错误的 最后一句话,在安装最终项目时,这个技巧将所有依赖项提取到Eclipse输出文件夹中,如果我没有弄错的话,它被定义为“/bin”默认ADT插件输出文件夹。 稍后,Eclipse使用数据构建APK,它的输出文件夹wallah中有和APK,F11可以使用它们启动调试器 这同样适用于我。。。我希望这对你也有帮助 分享你的想法。。。
亚当 来自里卡多的链接很好 添加
<extractDuplicates>true</extractDuplicates>
为Maven插件配置将确保JAR中的重复文件不会导致aapt崩溃。否则,在根包中包含与命名类似的许可文件的多个JAR就是一个问题,例如jackson-2.2.0 od 添加
<extractDuplicates>true</extractDuplicates>
为Maven插件配置将确保JAR中的重复文件不会导致aapt崩溃。否则,在根包中包含与名称相似的许可文件的多个JAR是一个问题,例如jackson-2.2.0m2e android插件会自动为您完成所有这些。然后我想知道为什么我使用它时它不工作,它被卡在一个构建循环中,从未结束,并且不止一次地杀死了Eclipse。。。我已经决定删除插件并实现它的功能…这是alpha软件。您是否在卸载旧版本时尝试了最新版本?此外,如果你有问题,你可以提出一个错误,我会看看我是否有时间看它。m2e android插件会自动为你完成所有这些。然后我想知道为什么我使用它时它不起作用,它被卡在一个构建循环中,从未结束过,并且一次又一次地杀死了Eclipse。。。我已经决定删除插件并实现它的功能…这是alpha软件。您是否在卸载旧版本时尝试了最新版本?此外,如果你有问题,你可以提出一个错误,我会看看我是否有时间来看看它。