【问题标题】:How to keep external libraries in proguard android如何在proguard android中保留外部库
【发布时间】:2021-05-26 07:34:39
【问题描述】:

您好,我在我的 android 应用程序中使用 proguard,并且我也在使用外部库,并且该库的类出现错误。我应该如何在 proguard 规则中添加这个库。

我如何在 gradle 中添加 lib:

 implementation "io.crossbar.autobahn:autobahn-android:${versionAutobahn}"

这是我在 proguard 中尝试过但不适合我的方法 我也使用过 -keep 但没有帮助

-dontwarn io.crossbar.autobahn-autobahn-android   
-dontwarn io.crossbar.autobahn.wamp.Client
-keep class autobahn.** { *; }
-keep class io.crossbar.** { *; }

我应该如何将这个库保存在 proguard 中?

【问题讨论】:

    标签: android proguard


    【解决方案1】:

    您尝试过以下方法吗?

    -keep class io.crossbar.** { *; }
    

    【讨论】:

    • 它给了我错误“Unresolved class name”
    【解决方案2】:

    您需要使用-keep 来阻止任何包中的类,例如:

    -keep class io.crossbar.** { *; }
    

    -dontwarn 只会忽略警告。使用-keep,您可以保留任何类、类字段和方法。

    更详细的使用检查:ProGuard manual

    此外,GitHub 上有一个功能请求,要求此 repo 支持 ProGuard,here

    【讨论】:

    • 它给了我错误“Unresolved class name”
    • 对不起,作为一个例子提到了autobahn.**,它必须是-keep class io.crossbar.** { *; },正如AlphaOne所提到的,编辑我的答案也为此
    • 何时收到此错误?您能简要介绍一下您正在尝试做什么,或者您是如何收到此错误的吗?
    • 当我将此行添加到 proguard 文件时,时间给了我一个错误
    • 使用上述规则,它对我有用,尝试添加为:-keep class io.crossbar.autobahn.** { *; }
    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2013-11-02
    • 2017-02-01
    • 2011-12-05
    • 2017-02-17
    • 2017-08-08
    • 2021-08-18
    相关资源
    最近更新 更多