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