首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在库模块中使用ProGuard

如何在库模块中使用ProGuard
EN

Stack Overflow用户
提问于 2017-05-19 20:14:23
回答 2查看 3.1K关注 0票数 1

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

库模块build.gradle

代码语言:javascript
复制
buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

日志错误

代码语言:javascript
复制
 /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文件规则

代码语言:javascript
复制
-keep class com.alprlib.alpr.** { *; }
-keepclassmembers class alprlib.alpr.** {*;}
EN

回答 2

Stack Overflow用户

发布于 2018-02-06 14:03:27

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

代码语言:javascript
复制
consumerProguardFiles 'proguard-rules.pro'

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

另请参阅consumerProguardFiles

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

票数 4
EN

Stack Overflow用户

发布于 2017-05-19 20:24:47

你可以在你的前卫文件上写-

代码语言:javascript
复制
-keep public class * extends android.app.Activity 

或者任何你想保留的班级。看看这个- https://www.guardsquare.com/en/proguard/manual/examples

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44069851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档