本文介绍了使用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规则排除文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!