android-studio - 如何在 Android Studio 中使用带有过滤器的 ProGuards -libraryjars?

标签 android-studio proguard

我的 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/

相关文章:

android - 如何在 Android Studio 中使用 adb over WiFi 进行调试

android - 错误24 13 Android Studio无法解决

android - 混淆器问题: "java.lang.IllegalArgumentException: Illegal query expression: No hash key condition is found in the query"

Android BadParcelableException(Parcelable 协议(protocol)需要一个名为 CREATOR 的 Parcelable.Creator 对象)只有签名的 apk

android - 在 2.3 上处理 Android Studio 3.0 项目

java - 错误 :java. lang.IllegalArgumentException:找到意外的类型标记 67

java - Android Studio 与 Cordova CLI

android - DynamoDbMapperException : No method annotated? 异常

android - 使用 Android 库项目设置 ProGuard

android - Cocos2d-JS 游戏上的 Playscape SDK 1.14 因混淆而崩溃