小编典典

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

javascript android

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

我将项目更新为gradle0.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中


阅读 357

收藏
2020-09-16

共1个答案

小编典典

将依赖项放在顶部,将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'
    }
}

编辑:几乎所有的OS许可证都包含将“包含许可证副本”添加到您的项目中的义务。因此,这意味着您必须在项目中包括使用的所有OS许可证的副本。通过将它们“排除”在gradle中,就违反了许可证。

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

2020-09-16