2016-01-07 37 views
0

我嘗試將ProGuard與我自己的UncaughtExceptionHandler類一起使用。沒有ProGuard,一切運作良好。但是如果我啓用它,函數uncaughtException將永遠不會被調用。ProGuard和UncaughtExceptionHandler

public class MyBug implements UncaughtExceptionHandler 
{ 
    private UncaughtExceptionHandler defaultUEH; 

    public ASBug() { 
     alert("init"); 
     defaultUEH = Thread.getDefaultUncaughtExceptionHandler(); 
    } 

    public void addHandlerToThread(Thread t) { 
     alert("set"); 
     t.setUncaughtExceptionHandler(this); 
    } 

    @Override 
    public void uncaughtException(Thread t, Throwable e) 
    { 
     alert("catch"); 
    } 


    static void alert(final String message) { 

     ***.context().runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       AlertDialog.Builder bld = new AlertDialog.Builder(***.context()); 
       bld.setMessage(message); 
       bld.setNeutralButton("OK", null); 
       bld.create().show(); 
      } 
     }); 
    } 
} 

proguard的-rules.txt

-keepclasseswithmembers public class com.asgardsoft.core.ASBug 

回答

0

明確要求ProGuard的保留類

-keepclass your.package.name.UncaughtExceptionHandler