2016-04-23 55 views
1

我想做,如果我留在程序調試代碼構建失敗。
是否有可能通過ProGuard的做到這一點?如果是這樣,怎麼樣?失敗建設如果註釋存在使用ProGuard

這是我目前:

/** Annotate methods that shouldn't be used in production. */ 
@Retention(RetentionPolicy.CLASS) // TODO which one? 
@Target({CONSTRUCTOR, METHOD, TYPE}) 
public @interface DebugHelper { 
} 

class Utils { 
    /** 
    * Dig up object's internals (with reflection if need be) 
    * and convert them to string. Useful for View/Fragment/Bundle/etc. 
    */ 
    @DebugHelper 
    public static String toString(Object value) { 
     ... 
    } 
} 

比方說,我不小心遺留在代碼Utils.toString(veryBigObject)地方。我正在尋找一種方法使構建失敗(或輸出一個Note/Warning行)。請注意,有許多類和方法是這樣註釋的,因此逐個列出它們並不是一個解決方案。


或者如果以上是不可能的,我會同樣高興,如果ProGuard的可以擺脫這些電話的(加快釋放APP)@DebugHelper註釋的所有方法/類(以減小尺寸)。

我已經試過:

-assumenosideeffects class ** { 
    @net.twisterrob.java.annotations.DebugHelper <methods>; 
} 

,但它給了我

注:配置指定中沒有一個類的方法「**」有什麼副作用
注意:有1,嘗試匹配通配符的所有方法「-assumenosideeffects」選項。這可能會導致像'wait()'和'notify()'這樣的方法出現問題。您應該更精確地指定方法。 (http://proguard.sourceforge.net/manual/troubleshooting.html#nosideeffects

儘管註釋非常具體。

回答

0

該消息是在你的情況無害彷彿已指定的註釋過濾器各自的代碼不考慮。

相關問題