繁体   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