2016-11-06 101 views
1

我想將我的Android應用程序用作Kafka的「生產客戶端」。 添加下列依賴條件後:APK reference.conf中複製的重複文件

// https://mvnrepository.com/artifact/org.apache.flink/flink-java 
compile group: 'org.apache.flink', name: 'flink-java', version: '1.1.3' 

// https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java_2.10 
compile group: 'org.apache.flink', name: 'flink-streaming-java_2.10', version: '1.1.3' 

// https://mvnrepository.com/artifact/org.apache.flink/flink-clients_2.10 
compile group: 'org.apache.flink', name: 'flink-clients_2.10', version: '1.1.3' 

// https://mvnrepository.com/artifact/org.apache.flink/flink-connector-kafka-0.8_2.10 
compile group: 'org.apache.flink', name: 'flink-connector-kafka-0.8_2.10', version: '1.1.3' 

我收到此錯誤信息:

出了什麼問題:執行失敗的任務 ':應用程序:transformResourcesWithMergeJavaResForDebug'。

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:重複文件 在APK複製reference.conf文件1: /home/lidox/.gradle/caches/ modules-2/files-2.1/com.typesafe.akka/akka-remote_2.10/2.3.7/d5603ae49eefde410f5e75f41b4f60bee61b7bfd/akka-remote_2.10-2.3.7.jar File2: /home/lidox/.gradle/caches /modules-2/files-2.1/com.typesafe.akka/akka-actor_2.10/2.3.7/b20f18109689918f05238deea29e681946d30ef7/akka-actor_2.10-2.3.7.jar

嘗試:與運行 - stacktrace選擇以獲得堆棧跟蹤。使用 --info或--debug選項運行以獲取更多日誌輸出。

構建失敗

我嘗試排除JAR文件中的一個,但沒有成功:

packagingOptions { 
    exclude 'META-INF/**' 
    exclude 'META-INF/license.txt' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/notice.txt' 
    exclude 'META-INF/NOTICE' 
    exclude('**/akka-remote_2.10-*.jar') 
    exclude 'reference.conf/**' 
} 

更新1:

我需要的東西是什麼做這個工作中gradle:

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.4.1</version> 
     <executions> 
      <!-- Run shade goal on package phase --> 
      <execution> 
       <phase>package</phase> 
       <goals> 
        <goal>shade</goal> 
       </goals> 
       <configuration> 
        <artifactSet> 
         <excludes> 
          <!-- This list contains all dependencies of flink-dist 
          Everything else will be packaged into the fat-jar 
          --> 
          <exclude>org.apache.flink:flink-annotations</exclude> 
          <exclude>org.apache.flink:flink-shaded-hadoop1</exclude> 
          <exclude>org.apache.flink:flink-shaded-hadoop2</exclude> 
          <exclude>org.apache.flink:flink-shaded-curator-recipes</exclude> 
          <exclude>org.apache.flink:flink-core</exclude> 
          <exclude>org.apache.flink:flink-java</exclude> 
          <exclude>org.apache.flink:flink-scala_2.10</exclude> 
          <exclude>org.apache.flink:flink-runtime_2.10</exclude> 
          <exclude>org.apache.flink:flink-optimizer_2.10</exclude> 
          <exclude>org.apache.flink:flink-clients_2.10</exclude> 
          <exclude>org.apache.flink:flink-avro_2.10</exclude> 
          <exclude>org.apache.flink:flink-examples-batch_2.10</exclude> 
          <exclude>org.apache.flink:flink-examples-streaming_2.10</exclude> 
          <exclude>org.apache.flink:flink-streaming-java_2.10</exclude> 

          <!-- Also exclude very big transitive dependencies of Flink 

          WARNING: You have to remove these excludes if your code relies on other 
          versions of these dependencies. 

          --> 
          <exclude>org.scala-lang:scala-library</exclude> 
          <exclude>org.scala-lang:scala-compiler</exclude> 
          <exclude>org.scala-lang:scala-reflect</exclude> 
          <exclude>com.amazonaws:aws-java-sdk</exclude> 
          <exclude>com.typesafe.akka:akka-actor_*</exclude> 
          <exclude>com.typesafe.akka:akka-remote_*</exclude> 
          <exclude>com.typesafe.akka:akka-slf4j_*</exclude> 
          <exclude>io.netty:netty-all</exclude> 
          <exclude>io.netty:netty</exclude> 
          <exclude>commons-fileupload:commons-fileupload</exclude> 
          <exclude>org.apache.avro:avro</exclude> 
          <exclude>commons-collections:commons-collections</exclude> 
          <exclude>org.codehaus.jackson:jackson-core-asl</exclude> 
          <exclude>org.codehaus.jackson:jackson-mapper-asl</exclude> 
          <exclude>com.thoughtworks.paranamer:paranamer</exclude> 
          <exclude>org.xerial.snappy:snappy-java</exclude> 
          <exclude>org.apache.commons:commons-compress</exclude> 
          <exclude>org.tukaani:xz</exclude> 
          <exclude>com.esotericsoftware.kryo:kryo</exclude> 
          <exclude>com.esotericsoftware.minlog:minlog</exclude> 
          <exclude>org.objenesis:objenesis</exclude> 
          <exclude>com.twitter:chill_*</exclude> 
          <exclude>com.twitter:chill-java</exclude> 
          <exclude>com.twitter:chill-avro_*</exclude> 
          <exclude>com.twitter:chill-bijection_*</exclude> 
          <exclude>com.twitter:bijection-core_*</exclude> 
          <exclude>com.twitter:bijection-avro_*</exclude> 
          <exclude>commons-lang:commons-lang</exclude> 
          <exclude>junit:junit</exclude> 
          <exclude>de.javakaffee:kryo-serializers</exclude> 
          <exclude>joda-time:joda-time</exclude> 
          <exclude>org.apache.commons:commons-lang3</exclude> 
          <exclude>org.slf4j:slf4j-api</exclude> 
          <exclude>org.slf4j:slf4j-log4j12</exclude> 
          <exclude>log4j:log4j</exclude> 
          <exclude>org.apache.commons:commons-math</exclude> 
          <exclude>org.apache.sling:org.apache.sling.commons.json</exclude> 
          <exclude>commons-logging:commons-logging</exclude> 
          <exclude>commons-codec:commons-codec</exclude> 
          <exclude>com.fasterxml.jackson.core:jackson-core</exclude> 
          <exclude>com.fasterxml.jackson.core:jackson-databind</exclude> 
          <exclude>com.fasterxml.jackson.core:jackson-annotations</exclude> 
          <exclude>stax:stax-api</exclude> 
          <exclude>com.typesafe:config</exclude> 
          <exclude>org.uncommons.maths:uncommons-maths</exclude> 
          <exclude>com.github.scopt:scopt_*</exclude> 
          <exclude>commons-io:commons-io</exclude> 
          <exclude>commons-cli:commons-cli</exclude> 
         </excludes> 
        </artifactSet> 
        <filters> 
         <filter> 
          <artifact>org.apache.flink:*</artifact> 
          <excludes> 
           <!-- exclude shaded google but include shaded curator --> 
           <exclude>org/apache/flink/shaded/com/**</exclude> 
           <exclude>web-docs/**</exclude> 
          </excludes> 
         </filter> 
         <filter> 
          <!-- Do not copy the signatures in the META-INF folder. 
          Otherwise, this might cause SecurityExceptions when using the JAR. --> 
          <artifact>*:*</artifact> 
          <excludes> 
           <exclude>META-INF/*.SF</exclude> 
           <exclude>META-INF/*.DSA</exclude> 
           <exclude>META-INF/*.RSA</exclude> 
          </excludes> 
         </filter> 
        </filters> 
        <transformers> 
         <!-- add Main-Class to manifest file --> 
         <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
          <mainClass>reactiontest.Job</mainClass> 
         </transformer> 
        </transformers> 
        <createDependencyReducedPom>false</createDependencyReducedPom> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

另外一個人可以嘗試使用maven構建APK,也許它會工作。該pom可以是thispom building Android Applications with Maven的組合

回答

1

首先如果全部,請看這個問題: Kafka Producer on Android。看來現在還不可能在移動設備上使用kafka。

關於你的問題,你是否已經嘗試排除文件的全名?

exclude 'akka-actor_2.10-2.3.7.jar' 
+0

耶已經試過了。沒有成功 – lidox

相關問題