Bewitching-coder
Bewitching-coder
静态变量当有初始值时,stringfog会在StringFogClassVisitor的visitField中置空,在的visitCode中不会去对mStaticFields中的存储的value不为空的变量赋值,在接下来的visitLdcInsn和visitFieldInsn方法中不会对变量赋值,导致编译出的apk中的静态变量初始值为空
目前打印了项目中所以的静态变量,发现有3处出现这个问题,腾讯的OpenSDK中有2处,我的解决方案是在clinit的visitCode中对mStaticFields中的存储的value不为空的变量加密赋值
Stringfog版本: 2.2.1
kotlin内联函数中,字符为返回值的高阶函数作为参数时,出现上述问题
写法如下: inline fun logE(tag: ()->String = { "ABC" }, str: () -> String) { if (BuildConfig.QA_BUILD) Log.e(tag(), str.invoke()) }