Android Studio 0.4在APK META-INF/LICENSE.txt中复制的重复文件

 杜亮亮喜欢2602936263 发布于 2023-02-07 16:34

在我将Studio从0.3.7更新到0.4.0之后,我无法编译我的项目.我在stackoverflow上找到了一个解决方案:复制了重复文件(Android Studio 0.4.0)

我将我的项目更新为graged 0.7.+,但我不知道我必须把下一个字符串放在哪里:

android {

    packagingOptions {
       exclude 'META-INF/LICENSE.txt'
    }
}

我的logcat:日志

Execution failed for task ':Prog:packageDebug'.
> Duplicate files copied in APK META-INF/LICENSE.txt
    File 1: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar
    File 2: /home/scijoker/AndroidStudioProjects/ProgProject/Prog/libs/httpclient-4.1.1.jar

PS开发在ubuntu 13.04

8 个回答
  • 将dependecies放在顶部,最后的packageOptions为我工作.

    apply plugin: 'android'. 
    

    这是我在app文件夹中的完整build.gradle.

    dependencies {
        compile 'com.android.support:support-v4:+'
        compile files('libs/apache-mime4j-0.6.jar')
        compile files('libs/httpmime-4.0.jar')
    }
    
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.1"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 10
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-    rules.txt'
        }
    
    
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/dependencies.txt'
            exclude 'META-INF/LGPL2.1'
        }
    }
    

    编辑:几乎所有操作系统许可证都包含"在您的项目中包含许可证副本"的义务.这意味着,您必须包含您在项目中使用的所有操作系统许可证的副本.通过在gradle中"排除"它们,您违反了许可证.

    将它们从项目中排除可能不是最佳选择.谢谢RS的信息.

    2023-02-07 16:34 回答
  • 您可以通过添加以下代码来修复它project/app/build.gradle:

    android {
        // Fixed build error : Duplicate files copied in APK META-INF/xxx
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/LICENSE.txt'
        }
    }
    

    2023-02-07 16:34 回答
  • 注意!!可能的OpenSource许可证违规.

    如上所述排除license.txt文件,您可能违反了一些开源许可证,因为它是开源许可证中的一个共同点,同意将其添加到您的源代码中.更好地检查您的开源许可证.

    更新: 在有更好的解决方案之前,请使用

    packagingOptions {
       pickFirst  'META-INF/license.txt'
    }
    

    像这样,你至少履行了许可义务的一部分

    2023-02-07 16:34 回答
  • 加上

    android {
        packagingOptions {
            exclude 'META-INF/LICENSE.txt'
        }
    }
    

    在build.gradle中

    2023-02-07 16:34 回答
  • 插入此代码时

    android{
    
    packagingOptions{
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
     }
    }
    

    如果错误显示,请确认

    >在APK META-INF/LICENSE.txt中复制的重复文件

    然后加

     android{
    
    packagingOptions{
        exclude 'META-INF/LICENSE.txt'
     }
    
    }
    

    如果错误显示

    >在APK META-INF/LICENSE中复制的重复文件

    然后加

     android{
    
    packagingOptions{
        exclude 'META-INF/LICENSE'
     }
    
    }
    

    如果错误显示

    >在APK META-INF/license.txt中复制的重复文件

    然后加

     android{
    
    packagingOptions{
        exclude 'META-INF/license.txt'
     }
    
    }
    

    简而言之,CASE和文档FORMAT(.txt)非常重要.

    (此错误也存在于Android Studio 1.1.0中)

    2023-02-07 16:36 回答
  • 我遇到了与新版本gradle相同的问题,下面的build.gradle文本格式适用于我:

    我的libs文件夹中有两个jackson jar.

    android {
             compileSdkVersion 21
             buildToolsVersion "21.1.2"
    
             defaultConfig {
                applicationId "com.omtlab.myapplication"
                minSdkVersion 14
                targetSdkVersion 21
                versionCode 1
                versionName "1.0"
             }
             buildTypes {
                 release {
                     minifyEnabled false
                     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
             }
             packagingOptions {
                exclude 'libs/jackson-core-asl-1.9.13.jar'
                exclude 'libs/jackson-mapper-asl-1.9.13.jar'
                exclude 'META-INF/ASL2.0'
                exclude 'META-INF/LICENSE'
                exclude 'META-INF/NOTICE'
             }
    }
    
    dependencies {
        //compile fileTree(include: ['*.jar'], dir: 'libs')
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile files('libs/jackson-core-asl-1.9.13.jar')
        compile files('libs/jackson-mapper-asl-1.9.13.jar')
    }
    

    2023-02-07 16:36 回答
  • 这将有助于您解决问题

    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/DEPENDENCIES'
    }
    

    2023-02-07 16:36 回答
  • 添加:

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
    }
    

    为我工作,biniam_Ethiopia的解决方案可能是最安全的

    2023-02-07 16:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有