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

问题描述 投票:1回答:2

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

// 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'

我收到此错误消息:

出了什么问题:任务执行失败':app:transformResourcesWithMergeJavaResForDebug'。

com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK reference.conf中复制的重复文件File1:/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 /阿卡-actor_2.10 / 2.3.7 / b20f18109689918f05238deea29e681946d30ef7 /阿卡-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的组合

java android gradle apache-kafka apache-flink
2个回答
1
投票

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

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

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

0
投票

我将其更改为排除'reference.conf'并且构建工作正常。

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

© www.soinside.com 2019 - 2024. All rights reserved.