2011-08-06 14 views
1

純粋なJavaライブラリを使用するAndroid Mavenプロジェクトがありますが、私は数日間、数日間は苦労しています。アップ次のエラー取得:、私は言及重複が、重複したファイルは、出力ディレクトリにフォルダのAndroid アンドロイド - クラスの一つであることを理解することができた長いしようとする一方、後Android Mavenプロジェクトで純粋なJavaライブラリを使用しています

[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プラグインは、純粋なJava jarのインポートをサポートしています(私は答えを見つけることができませんでした)。

ホー、はい、VERY IMPORTANTはクリーンインストールしてインストールするだけではありません!事前に

おかげで、

アダムZehavi。これは助けになるかもしれません

答えて

2

まあ、それは完全にそれを回避するために、また、Eclipseのショートカットからデバッグを有効にするには、このエラーを理解するのに約永遠に連れて行ってくれました。ここではいかなる保証もなしにそう

は、これまでのところ非常にうまく私の作品の一般的なソリューションです、と私は今のところ何の問題も発生しませんでした:

私は親のポンポンを持っている:

<?xml version="1.0" encoding="UTF-8"?> 
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.nu.art.software.android</groupId> 
    <artifactId>android-maven-parent</artifactId> 
    <version>1.0.0</version> 
    <packaging>pom</packaging> 

    <name>android-maven-parent</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <android.sdk>7</android.sdk> 
     <android.emulator.name>emulator1</android.emulator.name> 
     <android.version>2.1_r1</android.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>${android.version}</version> 
      <type>jar</type> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <outputDirectory>./target/android-classes</outputDirectory> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>maven-android-plugin</artifactId> 
       <version>3.0.0-alpha-2</version> 
       <configuration> 
        <sdk> 
         <platform>${android.sdk}</platform> 
        </sdk> 
        <emulator> 
         <avd>${android.emulator.name}</avd> 
        </emulator> 
        <deleteConflictingFiles>true</deleteConflictingFiles> 
        <undeployBeforeDeploy>true</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.3</version> 
       <executions> 
        <execution> 
         <id>unpack</id> 
         <phase>generate-sources</phase> 
         <goals> 
          <goal>unpack-dependencies</goal> 
         </goals> 
         <configuration> 
          <excludeScope>provided</excludeScope> 
          <skip>true</skip> 
          <includes>**/*.class</includes> 
          <outputDirectory>${project.basedir}/bin</outputDirectory> 
          <overWriteReleases>true</overWriteReleases> 
          <overWriteSnapshots>true</overWriteSnapshots> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.3</version> 
       <executions> 
        <execution> 
         <id>Make-classes-output</id> 
         <phase>clean</phase> 
         <goals> 
          <goal>run</goal> 
         </goals> 
         <inherited>true</inherited> 
         <configuration> 
          <tasks> 
           <echo>Creating '${project.basedir}/target/classes' Directory</echo> 
           <mkdir 
            dir="${project.basedir}/target/classes" /> 
          </tasks> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Eclipseからの起動とデバッグを可能にするプラグインのロジックがすべて失われ、重複の問題が解決されます。 (私がresフォルダを持っていたのは初めてのことですが、ソースフォルダとして混乱しました。後で依存関係の中で複製されました。

012最終更新日: Eclipseの出力フォルダに:

<?xml version="1.0" encoding="UTF-8"?> 
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <parent> 
     <artifactId>android-maven-parent</artifactId> 
     <groupId>com.nu.art.software.android</groupId> 
     <version>1.0.0</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.nu.art.software.sod</groupId> 
    <artifactId>s-o-d</artifactId> 
    <version>1.0.0</version> 
    <packaging>apk</packaging> 
    <name>S-O-D</name> 
    <dependencies> 
     <dependency> 
      <groupId>com.nu.art.software</groupId> 
      <artifactId>rexml</artifactId> 
      <version>0.0.1</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.nu.art.software</groupId> 
      <artifactId>nu-art-module-manager</artifactId> 
      <version>0.0.1</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.nu.art.software</groupId> 
      <artifactId>nu-art-generator</artifactId> 
      <version>0.0.1</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.nu.art.software</groupId> 
      <artifactId>nu-art-reflection</artifactId> 
      <version>0.0.1</version> 
      <type>jar</type> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.3</version> 
       <executions> 
        <execution> 
         <id>unpack</id> 
         <configuration> 
          <skip>false</skip> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

そして、いくつかの最後の言葉、最終的なプロジェクトをインストールすると、このトリックは「./bin'(デフォルトになるように定義されたEclipseの出力フォルダ、にそれらを抽出し、すべての依存関係をとりますADTプラグインの出力フォルダ、私が間違っていない場合)。 後で、Eclipseはデータを使用してAPKを構築します。出力フォルダにはwallahがあり、F11がデバッガを起動できるAPKがあります。

これも私にとってはうまくいきます。これがあなたにも役立つことを願っています。

あなたの考えを共有してください... アダム。

+0

m2e-androidプラグインはすべて自動的にhttp://rgladwell.githubを実行します。 com/m2e-android/ –

+1

それから私はそれを使用したときにうまくいかなかったのだろうか、それは決して終わらないビルドループに詰まっていて、Eclipseをもっと一度殺した...私はプラグインを削除してその機能を実装することに決めた... – TacB0sS

+0

これはalphaソフトウェアです。古いバージョンをアンインストールしている最中に試しましたか?また、あなたが問題を抱えている場合は、バグを起こすことができます。私はそれを見る時間があるかどうかを確認します。 –

1

リカルドからのリンクが良好です。 Mavenプラグインのための設定に

<extractDuplicates>true</extractDuplicates> 

を追加

は、瓶内の重複ファイルがAAPTがクラッシュすることはありませんことを保証します。それ以外の場合は、ルートパッケージ内の同様の名前のライセンスファイルと同様のファイルを含む複数のJARファイルが問題になります(jackson-2.2.0など)

関連する問題