[英]How to add logging to Android Java app that is stripped out by Proguard?
我在應用程序中添加了大量日志記錄以簡化調試,但是我想確保僅將最少的內容輸入到生產應用程序中。 我的理解是,編譯器不會刪除未使用的代碼,Android沒有條件編譯,但是Proguard會刪除未使用的代碼。 這是一個示例跟蹤類:
public class Trace
{
public static final int logginglevel = 5;
public static final boolean errors = logginglevel > 1;
public static final boolean warnings = logginglevel > 2;
public static final boolean info = logginglevel > 3;
public static final boolean debug = logginglevel > 4;
}
然后在應用程序本身中記錄如下:
if (Trace.debug) Log.d(TAG,"problem")
這樣是否可以成功使Proguard識別並刪除未使用的語句? 這個說法很丑陋,但是我可以看到它是最短的。
有沒有更簡潔的方法可以在Android應用程序中包括登錄功能,但是會自動將其剝離以用於生產版本嗎? 我懷疑是否可以將Proguard本身配置為刪除代碼的特定方面,但不確定是否有比這更好的解決方案。
從另一個StackOverflow響應中...
將此添加到您的proguard配置文件中:
-assumenosideeffects class android.util.Log {
public static *** i(...);
public static *** d(...);
public static *** v(...);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.