首页 文章

如何在库模块中使用ProGuard

提问于
浏览
0

我想在库模块中启用ProGuard,但是得到编译错误,该包不存在 . 在库模块中应用ProGuard后,为什么包不存在?

库模块build.gradle

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

记录错误

/home/hitesh/Documents/Android Studio Project/ALPR-Sample/app/src/main/java/com/alpr/sample/GalleryActivity.java
Error:(15, 32) error: package com.alprlib.alpr.doc does not exist
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

这里doc类文件存在于库模块中

ProGuard文件规则

-keep class com.alprlib.alpr.** { *; }
-keepclassmembers class alprlib.alpr.** {*;}

2 回答

  • 1

    你可以写你的proguard文件 -

    -keep public class * extends android.app.Activity
    

    或者你想保留什么课程 . 看看这个 - https://www.guardsquare.com/en/proguard/manual/examples

  • 0

    我有必要为库指定proguard设置(比如哪些库文件不应该发现我还需要在我的应用程序中包含我的库模块中的proguard配置 . 为此,我将以下内容添加到 defaultConfig 部分中 . 我的图书馆的 build.gradle

    consumerProguardFiles 'proguard-rules.pro'
    

    然后在我的库模块中配置proguard-rules.pro文件以保留重要的序列化类的名称 .

    另见consumerProguardFiles

    请看这篇文章:https://stackoverflow.com/a/48636288/8770663

相关问题