MegatronKing / StringFog

一款自动对字节码中的字符串进行加密Android插件工具
Apache License 2.0
1.71k stars 343 forks source link

自定义算法问题 #29

Closed oneLZH closed 5 years ago

oneLZH commented 5 years ago

自定义算法需要在 buildSrc、app 目录中都创建相同的文件,方可使用。 问题: 目前我的工程中加密算法(jni)作为一个独立的 libaryModule 存在,而 buildSrc 无法引入 libraryModule ,除非我将加密算法代码复制一份到 buildSrc,但这样维护起来太麻烦了,能否通过修改插件中的代码,从而实现不在 buildSrc 中创建该类,只在 app 中创建,即可使用。或者有什么其他好的解决方案?

MegatronKing commented 5 years ago

你可以参考sample中maven依赖的方式,将你的自定义算法作为maven依赖进去,这样代码就是一份。 如果想在原项目中集成源码,比较难,因为涉及到编译和运行两个环节,我没有找到gradle编译环节引用到app中的源码的方式。

oneLZH commented 5 years ago

@MegatronKing buildSrc(即 Groovy 类型插件)应该是只能使用 java/ java-library 类型的 lib,而我的加密库是 android-library 类型,依赖之后无法使用里面的任何类。 如果将其转成 java/ java-library 类型,则 so 库会因为存放位置不对,编译时会出现错误 no in xxx java.library.path ,要想使用,只能将 so 存放在对应的环境位置,而其他人想使用的话也必须拷贝到对应的环境位置,这样操作起来太麻烦了;我应该怎么做?有什么好的思路吗?求指点~

oneLZH commented 5 years ago

换句话说如何才能在 buildSrc module 中使用 so 库呢,困惑了 2 天,没有解决这个问题,期望得到回复!!!

oneLZH commented 5 years ago

已解决,问题关闭

BCsl commented 5 years ago

@oneLZH 同样的疑问,请问是怎么解决的?

oneLZH commented 5 years ago

@oneLZH 同样的疑问,请问是怎么解决的?

将 JNI 生成 So,buildSrc 一份,app 一份,需要注意的是 buildSrc 是以编译环境为主的,环境不一格式也不一样