Android 如何在库模块中使用ProGuard

Android 如何在库模块中使用ProGuard,android,android-proguard,Android,Android Proguard,我想在库模块中启用ProGuard,但得到的编译错误是包不存在。为什么在库模块中应用ProGuard后包不存在 库模块build.gradle buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 日志错误

我想在库模块中启用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.
这里文档类文件存在于库模块中

ProGuard文件规则

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

您可以在proguard文件上写入-

-keep public class * extends android.app.Activity 
或者你想上什么课。
看看这个-

在库项目中为库指定proguard设置(比如哪些库文件不应该被混淆)对我来说是有意义的。我发现我还需要在应用程序中包含库模块中的proguard配置。为此,我在库的
build.gradle

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

另见

请参阅本帖:

图书馆对消费者一无所知。就库而言,没有人在使用它的代码,因此proguard删除了所有内容。您必须手动告诉proguard不要删除任何类。只有这样,您才能另外告诉它混淆不属于库的公共API的名称@欧根佩切内克哦哇!听起来不错。你能详细解释一下吗?请看这篇文章:我想压缩源代码,但使用的是未压缩的行上类代码