Open Bewitching-coder opened 1 year ago
release包在visitField方法中object值不为空,在返回时变量被置空,在接下来的visitLdcInsn和visitFieldInsn方法中不会执行这个变量的回调,编译出包后变量初始为空
使用的Java版本是多少?
jdk 11
静态变量当有初始值时,stringfog会在StringFogClassVisitor的visitField中置空,在的visitCode中不会去对mStaticFields中的存储的value不为空的变量赋值,在接下来的visitLdcInsn和visitFieldInsn方法中不会对变量赋值,导致编译出的apk中的静态变量初始值为空
目前打印了项目中所以的静态变量,发现有3处出现这个问题,腾讯的OpenSDK中有2处,我的解决方案是在clinit的visitCode中对mStaticFields中的存储的value不为空的变量加密赋值
release包在visitField方法中object值不为空,在返回时变量被置空,在接下来的visitLdcInsn和visitFieldInsn方法中不会执行这个变量的回调,编译出包后变量初始为空