我想做,如果我留在程序調試代碼構建失敗。
是否有可能通過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)
儘管註釋非常具體。