使用proguard规则排除文件 [英] Exclude files using proguard rules

查看:225
本文介绍了使用proguard规则排除文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用proguard减小apk的大小。这样做时,我收到了这些warnigs消息,

 警告:无法写入资源[META-INF / LICENSE.txt] (重复的zip条目[commons-lang-2.6.jar:META-INF / LICENSE.txt])
警告:无法写入资源[META-INF / NOTICE.txt](重复的zip条目[commons-lang -2.6.jar:META-INF / NOTICE.txt])
警告:无法写入资源[.readme](重复的zip条目[classes.jar:.readme])

除了保留类以外,还有什么办法排除这些文件?我已经在gradle文件中排除了这些,但这似乎并不奏效。如果您使用的是Android Studio,请添加此代码



到您的build.gradle

  packagingOptions {
排除'META-INF / LICENSE.txt'
排除'META-INF / NOTICE.txt'
排除'.README'
}

///完整示例

  android {
compileSdkVersion 23
buildToolsVersion '22 .0.1'
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName'1.0'
renderscriptTargetApi 22

buildTypes {
debug {
debuggable true
minifyEnabled false
renderscriptDebuggable true
versionNameSuffix-debug
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true
shrinkResources false
renderscriptDebuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
packagingOptions {
exclude'META -INF / LICENSE.txt'
排除'META-INF / NOTICE.txt'
排除'.README'
}

}
' code>


I am trying to reduce the size of the apk using proguard . I am getting these warnigs messages while doing so ,

Warning: can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [commons-lang-2.6.jar:META-INF/LICENSE.txt])
Warning: can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [commons-lang-2.6.jar:META-INF/NOTICE.txt])
Warning: can't write resource [.readme] (Duplicate zip entry [classes.jar:.readme])

Apart from keeping classes is there any way to exclude these files ? I have excluded these in gradle file but that doesn't seem to work .

解决方案

if you are using Android Studio , add this

to your build.gradle

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

/// complete example

android {
    compileSdkVersion 23
    buildToolsVersion '22.0.1'
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName '1.0'
        renderscriptTargetApi 22
    }
    buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            renderscriptDebuggable true
            versionNameSuffix "-debug"
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            debuggable false
            minifyEnabled true
            shrinkResources false
            renderscriptDebuggable false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude '.README'
    }

}

这篇关于使用proguard规则排除文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆