我的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
根据http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass的ProGuard文档,应使用-libraryjars
过滤器修复此问题,如下所示:
-libraryjars ../libs/ddogleg-0.8.jar(!org/ddogleg/solver/impl/WrapRealRootsSturm.class)
问题是,即使指定了过滤器,ProGuard也会高兴地抱怨它无法找到引用的类。
现在,如果使用的是-dontwarn org.ddogleg.solver.impl.WrapRealRootsSturm
而不是-libraryjars
过滤器,那么它正在运行。因此,至少我知道我正在编辑正确的文件...
很明显,我做错了。您有任何想法如何让-libraryjars过滤器工作吗? 感谢您的支持。
答案 0 :(得分:2)
将以下内容添加到您的proguard配置中:
-keep class org.ejml.** { *; }
-dontwarn org.ejml.**
-keep class org.ddogleg.** { *; }
-dontwarn org.ddogleg.**