簡體   English   中英

如何將日志添加到Proguard剝離的Android Java應用程序中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM