簡體   English   中英

如何使用沒有log4j依賴關系的Android庫?

[英]How to use an Android library without log4j dependency?

我正在JellyBean設備上開發應用程序,並且喜歡Android Studio的新即時運行功能。 但是,在JellyBean設備上使用它需要一個非多重應用程序。 我設法通過刪除一些依賴項來減少了dex的大小。

問題是我真的想省略log4j庫,這是使我超出dex限制的庫,但是我需要使用另一個庫(gpxParser)來調用log4j並在運行時因此錯誤而崩潰。

造成原因:java.lang.NoClassDefFoundError:org.apache.log4j.Logger

我已經嘗試了一些Proguard nowarns,但無濟於事。 在沒有包含log4j的情況下,該應用程序運行良好,直到我從使用它的庫中打了一個電話。 我已經在互聯網上進行了搜索,但找不到任何方法。

有一個文件gpxparser.properties和一個類AndroidLogger

看看是否可以將兩者結合在一起。

您可以配置Proguard以刪除對Log4j等日志記錄框架的調用。 由於Proguard在字節碼級別上運行,因此是否具有該庫的源代碼都沒有關系。

使用assumenosideeffects Proguard的的標記,你可以假設沒有任何負面影響被移除的類和方法。

關於Android Log系統,Stackoverflow上有一個示例: 使用proguard刪除Log調用

您可以改編此示例並將其更改為匹配org.apache.log4j.Logger和log4j中的其他類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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