在网上看到一些大佬说的混淆虹软的so文件,尝试了一下在自己的项目中使用,但是报了这个样一个错误,
Unexpected input type. Only archive types are supported, e.g., .jar, .zip, etc.
大意就是不支持这种类型的混淆,所以,建议你用到哪个类就直接混淆哪个类
如果你的项目开启了混淆的话,这个时候你使用虹软的人脸识别SDK的时候,当你第一步准备激活人脸殷勤的时候就会报错,所以,你需要在你的 proguard-rules.pro 中添加如下混淆:
-keep class com.arcsoft.face.**{*;}
因为(请看虹软的激活代码):
int code = FaceEngine.activeOnline(this, Constants.ACTIVE_KEY, Constants.APP_ID, Constants.SDK_KEY);
if(code == ErrorInfo.MOK){
Log.i(TAG, "activeOnline success");
}else if(code == ErrorInfo.MERR_ASF_ALREADY_ACTIVATED){
Log.i(TAG, "already activated");
}else{
Log.i(TAG, "activeOnline failed, code is : " + code);
}
你能看到他是用 FaceEngine这个类里面的一个静态方法去激活的人脸殷勤,所以你要把这个类给保护一下,避免混淆,点进去这个类,找到这个类所在的包里面你能看到包名
如下你只需将这个类包下的所有类或者只混淆这一个类(建议你混淆这个包下的所有的类,避免其他类使用的时候也会报异常,反正虹软的代码是公有的)