Gradle在激活proguard(从日食迁移)时无法构建



当我激活proguard时,我无法生成我的projet:

http://www.pastefile.com/hyEvNK

我的构建文件是:

应用插件:"com.android.application"安卓 {    编译Sdk版本23    构建工具版本"23.0.2"    默认配置 {        applicationId "com.sh.inv"        目标Sdk版本23        版本代码 66        版本名称"2.5.0"        多晶圆启用假    }    构建类型 {        释放 {            缩小启用 true            proguardFiles 'proguard-project.txt'        }    }    产品口味 {    }    产品口味 {            minSdkVersion 21    }}存储库 {    maven { url "http://jzaccone.github.io/SlidingMenu-aar" }}依赖关系 {    编译文件('libs/ormlite-android-4.48.jar')    编译文件('libs/ormlite-core-4.48.jar')    编译 'com.android.support:multidex:1.0.1'    编译 'com.android.support:appcompat-v7:23.2.1'    编译 'com.android.support:support-v4:23.2.1'    编译 'com.android.support:support-v13:23.2.1'    编译 'com.google.code.gson:gson:2.6.2'    编译 'org.apache.httpcomponents:httpcore:4.4.4'    编译 'com.android.support:design:23.2.1'    编译 'com.android.support:preference-v14:23.2.1'    编译 'com.google.android.gms:play-services-analytics:8.4.0'    编译 'com.google.android.gms:play-services-identity:8.4.0'    编译 'com.google.android.gms:play-services-drive:8.4.0'    编译 'org.apache.commons:commons-io:+'    编译项目(':文件选择器')    编译项目(':简单裁剪图像')}配置 {    compile.exclude 组:"org.apache.httpcomponents",模块:"httpclient"}

而Proguard项目.txt是:

-dontwarn android.support.**-dontwarn com.google.gson.**-dontwarn com.j256.**-dontwarn com.actionbarsherlock.**-assumenosideeffects class android.util.Log {    公共静态 *** d(...);    公共静态 *** v(...);}-保持类 com.j256.**-keepclassmembers class com.j256.** {*;}-保持枚举 com.j256.**-keepclassmembers enum com.j256.** {*;}-保持接口 com.j256.**-keepclassmembers interface com.j256.** {*;}-保持界面安卓支持。-keepclassmembers interface android.support.** {*;}-保持界面 com.mapsaurus.paneslayout.**-keepclassmembers interface com.mapsaurus.paneslayout.** {*;}-keep class com.sh.inv.businessobjects.*-keepclassmembers class com.sh.inv.businessobjects.* { *; }-keep class com.sh.inv.DatabaseHelper-keepclassmembers class com.sh.inv.inv.DatabaseHelper { *; }-保持班级 com.sh.inv.businessobjects.ws。-keepclassmembers class com.sh.inv.businessobjects.ws.* { *; }-Keep class com.android.vending.billing.*-keepclassmembers class com.android.vending.billing.* { *; }-keep class com.sh.inv.ui.fragment.*-keepclassmembers class com.sh.inv.ui.fragment.* { *; }-保持类成员类 * {  public (android.content.Context);}-保持属性签名-保持属性注释-重命名源文件属性源文件   -保持属性源文件,行号表-Keep Public Class * 扩展 android.app.Fragment-keep public class * extensions android.support.v4.app.DialogFragment-keep public class * extensions com.sh.inv.ui.common.FragmentActivityBase-keepclassmembers class * extensions com.actionbarsherlock.actionBarSherlock {    (android.app.Activity, int);}#-injars libs-keep class * extensions java.util.ListResourceBundle {    受保护的对象[][] getContent();}-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {    公共静态最终 *** 空;}-keepnames @com.google.android.gms.common.annotation.KeepName class *-keepclassmembernames class * {    @com.google.android.gms.common.annotation.KeepName *;}-keepnames class * 实现 android.os.Parcelable {    公共静态最终**创建者;}

它在最新版本中工作,但它是一个睡眠项目,我不得不将其从 Eclipse 迁移到 Android Studio 并升级所有引用也许导入的库中有一些错误.

此外,我有很多以前没有的关于库的ormlite或重复定义的警告

add

android {
    useLibrary 'org.apache.http.legacy'
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
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'
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'
    exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'
}
}
微小的

阳光给了我一些线索,终于找到了答案

我需要删除

compile 'org.apache.httpcomponents:httpcore:4.4.4'

在我的 gradle 构建配置中,因为它现在集成在 Android 构建工具中(我认为)。我不知道为什么它在调试/发布模式下工作,但在使用 proguard 混淆时则不行。

最新更新