反编译apkjava后接口内的静态块

问题描述

我反编译了一些 apk,结果得到了下面的代码

public interface IConfiguration {
   static {
       Covode.recordClassIndex(25378);
   }
... 
}

像这样:

new Handler(Looper.getMainLooper()).post(new Runnable() {
                static {
                    Covode.recordClassIndex(27414);
                }
...
}

我们可以看到这是java,但是java不支持在接口和匿名类中声明静态块。那么,这是什么?我该如何解决这个问题?

解决方法

这似乎是为了阻止篡改应用程序的代码。

静态初始化器出现在字节码中,以初始化非编译时常量静态字段。