meili / Aceso

A hotfix library for Android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

执行gradle acesoRelease报错

zlg2338781286 opened this issue · comments

我根据之前提出的issue#17问题修复了,按照最新wiki做了,没有任何资源,fix工程的包名和宿主包名也不一样,但是出现一个新问题,重要日志如下

  • What went wrong:
    Execution failed for task ':businessHall:transformClassesWithDexForRelease'.

the method : onClick.(Landroid/view/View;)V in class : com/businesshall/activity/NewLoginActivity$4 not found in the aceso-mapping.
sure you aceso-mapping is right and no new method.
我的操作是把要修改的类拷贝到fix工程对应目录下,在一个方法上面加了@FixMtd,在import中手动引入了FixMtd的路径,在要修改的方法中加入Log以用来测试有没有修复成功。
我检查了fix工程中mapping的路径是对的,没有新加方法。
这种情况怎么排查

@farmerjohngit WiKi中修复流程第3步中有句话,“并在proguard的配置中apply 第一步保存下来的mappping文件(如果有的话)”,这句话是什么意思,怎么操作

@zlg2338781286
1.NewLoginActivity做了什么改动?检查下宿主工程com/businesshall/activity/NewLoginActivity$4 是否有onClick.(Landroid/view/View;)V方法。
2.google 'proguard apply mapping'

@farmerjohngit 谢谢,跟据你的提示,查到是混淆的问题,applymapping后可以正常编译打包了,但是修复的内容没有体现出来。根据我查看别人的issue,#11#15。我使用0.0.2版本的aceso,gradle编译失败,Error:Could not download aceso-build.jar (com.mogujie.aceso:aceso-build:0.0.2): No cached version available for offline mode

你开了离线模式: offline mode

你们解决了没有?在修复工程 proguard -applymapping D:\mapping\aceso-mapping.txt不起作用啊?

@xiejinsorry @farmerjohngit 没有解决,尝试了很多次,只要把混淆开起来修改的内容就没提现出来,打包都很正常了。我在demo中把混淆的mainactivity注释掉,在proguard加上-applymapping /Users/apple/Downloads/Aceso-master2/aceso-demo/app/build/intermediates/aceso/aceso-mapping/full/release/aceso-mapping.txt,也没起作用,不知道该怎么破

我的错误就是这个 library class com.ng.mangazone.action.MangaAction depends on program class com.ng.mangazone.action.AdUnitAction
但是 尝试了 proguard -applymapping D:\mapping\aceso-mapping.txt 不起作用,提问 也没人回答 真是伤脑筋

@zlg2338781286 proguard中要apply proguard产出的mapping,位置在build/output/mapping下。不是aceso-mapping.txt

@zlg2338781286 你是怎么做的? 能不能说详细一点? 我是 从 主工程的output 的maping 下面拷贝文件mappint.txt到 D盘
mapping文件夹 然后在 修复工程proguard-project.txt里加上-applymapping D:\mapping\mapping.txt经测试不起作用

@farmerjohngit 你是怎么做的? 能不能说详细一点? 我是 从 主工程的output 的maping 下面拷贝文件mappint.txt到 D盘
mapping文件夹 然后在 修复工程proguard-project.txt里加上-applymapping D:\mapping\mapping.txt经测试不起作用

@farmerjohngit Warning: com.ng.mangazone.activity.MainActivity$2: field 'android.widget.RelativeLayout val$baseLayout' is not being kept as 'a', but remapped t

is not being kept as ..., but remapped ..

这是proguard的warning,你可以去它官网看下。出现这个的原因多半是改了类结构(新增/删除字段、方法或修改方法定义)。

@farmerjohngit * What went wrong:
Execution failed for task ':app:transformClassesWithDexForRelease'.

the method : onDestroy.()V in class : com/ng/mangazone/a/b not found in the aceso-mapping.
sure you aceso-mapping is right and no new method.

新增/修改了方法? 宿主工程的allclass.jar中能找到 onDestroy.()V in class : com/ng/mangazone/a/b 这个方法吗