StringFog
StringFog copied to clipboard
fix bugs caused by multiple configurations
一个项目多项配置StringFog
导致的Bug
一个项目里面多个Project
都配置StringFog
会导致找不到所需的StringFog.java
提示Missing class packageName.StringFog
,
这里的packageName
是插件apply
方法获取的最后一个Project
复现:
分别创建包名为com.github.sample.A
和包名为com.github.sample.B
的两个Library
都配置StringFog
,
ALibrary
打release
包的时候会提示找不到com.github.sample.B.StringFog
类
这里BLibrary
是项目运行时插件获取到的最后一个Project
,如果配置了三个StringFog
分别是A
,B
,C
就会提示找不到C
包名下的StringFog.java
原因:
StringFogTransform
的数据都是通过静态变量赋值,className
一直都是最后一个Project
的包名,
配置一个没有这个问题
@7449 你好,感谢提交PR。关于StringFogTransform
静态赋值的问题我知道的,之所以没有使用参数传值是因为参数需要序列化,比如IKeyGenerator就需要强制序列化。对于继承IKeyGenerator自己实现一些加密解密方法的可能会出现无法序列化的问题,会影响到一部分用户,这个我一直没有找到好的解决方法。
这个我也发现了,要不就强制IKeyGenerator
需要序列化,要不就和implementation
一样通过反射去获取,提供个无参构造就行了或者提供构造参数,或者两个都弄上,有的只是简单加密不需要太复杂的方式
我觉得序列化方便一点,java层加密也只是求个心安
update:
或者用一个静态map[k->applicationId,value->StringFogExtension]
,parameters
只需要传递一个applicationId
@MegatronKing
我也遇到了,这个问题还可以解决吗?
#160 方案更好点,这个PR我关闭了。