美文网首页
proguard的 Constructor returning

proguard的 Constructor returning

作者: 吉凶以情迁 | 来源:发表于2018-11-14 11:31 被阅读0次
    java.lang.VerifyError: Verifier rejected class xxx: void xxx.<init>() failed to verify: void xxx.<init>(): [0x0] 
    
    Constructor returning without calling superclass constructor (declaration of xxx' appears in /data/app/cn.qssq666.screendetection-2/base.apk)
            at xxx.m.Ce.checkEmulatorxxx(Hl)
    

    对比混淆前后

    .method public constructor <init>()V
        .locals 0
    
        .line 9
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        return-void
    .end method
    

    混淆后删除了super()

    # direct methods
    .method public constructor <init>()V
        .locals 0
    
        return-void
    

    原因是我为了删除日志工具类使用了高级混淆手段assumenosideeffects
    而这个东西不能写通配符{*};否则会出现误删,具体看下面的文章

    https://sourceforge.net/p/proguard/bugs/716/?limit=25
    解决办法

      -assumenosideeffects class java.io.PrintStream {
          public *** println(...);
          public *** print(...);
      }
      -assumenosideeffects class android.util.Log {
          public static boolean isLoggable(java.lang.String,int);
          public static int v(...);
          public static int i(...);
          public static int w(...);
          public static int d(...);
         public static int e(...);
      }
    
    
        -assumenosideeffects class qssq666.qssqtest.demo.test.Logs {
    
             *** <fields>;
              *** <methods>;
            public static void writeLog(...);
            public static String getLog(...);
            public static void clear(...);
            public static void writeErrorLog(...);
        }
        -assumenosideeffects class qssq666.qssqtest.demo.test.BuildConfig{
        *** <fields>;
        *** <methods>;
        }
    
        -assumenosideeffects class cn.qssq666.module.BuildConfig{
      *** <fields>;
          *** <methods>;
        }
    

    通配符改成*** <fields>;*** <methods>;

    相关文章

      网友评论

          本文标题:proguard的 Constructor returning

          本文链接:https://www.haomeiwen.com/subject/bfcfzftx.html