当前位置: 首页 > 知识库问答 >
问题:

Android gradle构建:APK LICENSE. txt打包过程中的重复文件

刘泰
2023-03-14

我正在尝试使用以下gradle构建文件构建一个Android测试

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }

apply plugin: 'android-library'

repositories {
  mavenCentral()
}

dependencies {
    instrumentTestCompile "junit:junit:4.+"        
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    instrumentTest.setRoot('tests')
    instrumentTest {
      java.srcDirs = ['tests/src']
      res.srcDirs = ['tests/res']
      assets.srcDirs = ['tests/assets']
      resources.srcDirs = ['tests/src']
        }        
    }
}

运行时,我收到以下错误:

错误:APK打包过程中的重复文件...存档中的路径: LICENSE. txt起源1:...... gradle/cach/artiface-24/filestore/jUnit/jUnit/4.11/jar/4e031bb61df09069aeb2bffb4019e7a5034a4ee0/junit-4.11.jar起源2:... gradle/cach/artiface-24/filestore/org.hamcrest/hamcrest-core/1.3/jar/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar: PackageTest FAILED

失败:生成失败,出现异常。

  • 错误:任务“:packageTest”的执行失败。在APK:许可证内的同一路径上复制文件。txt

共有2个答案

曾云
2023-03-14

我在AOSP中注意到了这个提交评论,解决方案是使用DSL排除一些文件。可能在0.7.1发布时。

commit e7669b24c1f23ba457fdee614ef7161b33feee69
Author: Xavier Ducrohet <--->
Date:   Thu Dec 19 10:21:04 2013 -0800

    Add DSL to exclude some files from packaging.

    This only applies to files coming from jar dependencies.
    The DSL is:

    android {
      packagingOptions {
        exclude 'META-INF/LICENSE.txt'
      }
    }
陶英纵
2023-03-14

Junit v4。5已将所有必要的依赖项打包到JUnit jar中。因此不需要hamcrest。jar,并且没有产生双重许可。txt文件。

只需将依赖项更改为:

"jUnit: jUnit: 4.5"

基本的问题仍然存在-android在其构建树中不接受两个相同名称的文件。不过,这是一个很好的解决方法。

 类似资料:
  • 我不能添加一个管到库我想缓存错误,我怎么解决它? 错误:任务': app: transformResourcesSusMergeJavaResForDebug'执行失败。 com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: 在 APK bu

  • 我们正试图将我们的项目迁移到其他架构。 我们遇到以下错误消息: 起源1:>/users/xavi/programming/wdandroid/project/build/immediates/banked-aar/wdandroid/shinobichartsandroidlibrary/unspecificated/jni/armeabi/libshinobicharts-android.so

  • 在我的分级Android应用程序中,当我运行该应用程序时,我得到了以下错误。 错误:Gradle:APK /home/WorkSpace/MyProject/app/build/outputs/apk/app-debug-unaligned.apk打包过程中的重复文件错误:Gradle:任务': app: pack ageDebug'执行失败。在APK META-INF/license.txt文件

  • 在Android Studio上,打包运行,导入的包管理,都是使用Gradle,所以了解 Gradle 是非常必要的。这章我们一起学习 Gradle。

  • IdentityServer 由一些NuGet包组成。 IdentityServer4 nuget | github 包含了核心的 IdentityServer 对象模型,服务和中间件。核心仅包含对内存配置和用户存储的支持——但是,你可以通过配置的方式插入其他的存储支持。这是其他仓库和程序包相关的内容。 Quickstart UI github 包含一个简单的启动器 UI,包括 登录,注销 和 授

  • 最近我一直在写插件,然后使用ServiceLoader加载。为了让ServiceLoader找到我的插件,必须在META-INF/services/下的jar中包含一个文本文件。文本文件必须以ServiceLoader正在“寻找”的接口命名,并且必须包含实现类的规范名称。所有这些都工作得非常好,但是这种方法有一个非常烦人的问题:每次构建项目时,我都必须手动将 /services/文件夹以及文本文件