dodola / RocooFix

another hotfix framework
MIT License
1.57k stars 292 forks source link

不打开minifyEnabled无法生成patch.jar,混淆后生成的patch替换asset目录里的用静态修复验证失败。 #28

Open mars-ma opened 8 years ago

mars-ma commented 8 years ago

不配置 gradle 中的minifyEnabled true无法生成patch.jar,配置后将生成的patch替换asset里的patch验证无效。反编译了一下Demo里asset里的patch是未混淆的,请问我这样的操作是否正确?

xuzixuan commented 8 years ago

minifyEnabled true我配置了,但还是没生成jar文件

yangqianghui commented 8 years ago

最新教程: 1.project下的build.gradle

buildscript { repositories { jcenter() maven { url "http://dl.bintray.com/dodola/maven" } } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.dodola:rocoofix:1.1' } } allprojects { repositories { jcenter() maven { url "http://dl.bintray.com/dodola/maven" } } }

2.project下Modue:app里面的build.gradle

apply plugin: 'com.android.application' apply plugin: 'com.dodola.rocoofix' rocoo_fix { // includePackage = ['com/tianxia/administrator/appdemo']//限制需要制作补丁的package // excludeClass = ['Applic.class']//将不需要加到patch里的类写在这里 //preVersionPath = '1'//注意:此项属性只在需要制作补丁的时候才需开启!!如果不需要制作补丁则需要去掉此项 enable = true//注意:关掉此项会无法生成Hash.txt文件 } //必须配置,不然不产生hash.txt内容不对 android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug{ minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }

dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // compile 'com.dodola:rocoo:1.0' }

2.project下Modue:app里面的proguard-rules.pro混淆配置 -keep class com.dodola.rocoofix.* {;} -keep class com.lody.legend.* {;}