当我激活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 混淆时则不行。