Android工程打包sdk,导出jar已被混淆,该jar被第三方使用,混淆时出现Unknown verification type [*] in stack map frame问题,测试发现
if(){ }else{ Log.cerateLog("something"); }
其中Log
public class Log { public static boolean debug = false; public static void cerateLog(String str){ if(debug){ Log.i("TAG", str); } } }
当debug为false时createLog()方法其实是没有执行内容的,当混淆时if else 中else的部分会被精简掉造成出现这个问题,解决办法就是:直接去掉else部分,或者将
Log.cerateLog("something");
拆成两句
String aa = "something" Log.cerateLog(aa);
时间: 2024-11-04 14:33:47