我的 build.gradle 文件包含以下依赖项:
compile files('../libs/ddogleg-0.8.jar')
该应用程序在禁用 ProGuard 的情况下可以完美运行。启用 ProGuard 后,许多像下面这样的警告会破坏构建:
Warning: org.ddogleg.solver.impl.WrapRealRootsSturm: can't find referenced class org.ejml.data.Complex64F
根据 ProGuard 文档 http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass ,这个问题应该使用 -libraryjars
过滤器来解决,如下所示:
-libraryjars ../libs/ddogleg-0.8.jar(!org/ddogleg/solver/impl/WrapRealRootsSturm.class)
问题是,即使指定了过滤器,ProGuard 仍然愉快地提示它找不到引用的类。
现在,如果使用 -dontwarn org.ddogleg.solver.impl.WrapRealRootsSturm
而不是 -libraryjars
过滤器,则它可以正常工作。因此至少我知道我正在编辑正确的文件...
很明显我做错了。您对如何让 -libraryjars 过滤器工作有什么想法吗? 感谢您的支持。
最佳答案
将以下内容添加到您的 proguard 配置中:
-keep class org.ejml.** { *; }
-dontwarn org.ejml.**
-keep class org.ddogleg.** { *; }
-dontwarn org.ddogleg.**
关于android-studio - 如何在 Android Studio 中使用带有过滤器的 ProGuards -libraryjars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34900266/