在APK reference.conf中复制的重复文件

时间:2016-11-06 10:17:34

标签: java android gradle apache-kafka apache-flink

我想将我的Android应用程序用作Kafka的“制作客户端”。 添加以下依赖项后:

// 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       文件2:     /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

的组合

2 个答案:

答案 0 :(得分:1)

首先,如果全部,请看这个问题: Kafka Producer on Android。似乎还不可能在开箱即用的移动设备上使用kafka。

关于你的问题,你是否已经尝试排除文件的全名?

[math.cos(x) for x in t]

答案 1 :(得分:0)

我将其更改为  排除“ reference.conf” 并且构建成功。

您将需要将所有reference.conf连接到application.conf中,但这应该不太困难。