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