如何在库模块中使用ProGuard

时间:2017-05-19 12:14:23

标签: android android-proguard

我想在库模块中启用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 个答案:

答案 0 :(得分:1)

你可以写你的proguard文件 -

-keep public class * extends android.app.Activity 

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

答案 1 :(得分:0)

我有必要在库项目中指定库的proguard设置(比如哪些库文件不应被混淆)。我发现我还需要在我的应用程序中包含我的库模块中的proguard配置。为此,我将以下内容添加到了我的库defaultConfig

中的build.gradle部分
consumerProguardFiles 'proguard-rules.pro'

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

另见consumerProguardFiles

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