Hit*_*lot 5 android android-proguard
我想在库模块中启用 ProGuard,但出现编译错误,表明包不存在。为什么在库模块中应用 ProGuard 后包不存在?
库模块build.gradle
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
日志错误
/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.
Run Code Online (Sandbox Code Playgroud)
这里 doc 类文件存在于库模块中
ProGuard 文件规则
-keep class com.alprlib.alpr.** { *; }
-keepclassmembers class alprlib.alpr.** {*;}
Run Code Online (Sandbox Code Playgroud)
Mas*_*ari 10
对我来说,在库项目中为库指定混淆器设置(例如不应混淆哪些库文件)是有意义的。我发现我还需要在应用程序中包含库模块中的混淆器配置。为此,我将以下内容添加到defaultConfig我的库的部分中build.gradle
consumerProguardFiles 'proguard-rules.pro'
Run Code Online (Sandbox Code Playgroud)
然后在我的库模块中配置 proguard-rules.pro 文件以保留重要的序列化类的名称。
请参阅这篇文章: /sf/answers/3404540191/
小智 0
你可以在你的 proguard 文件上写 -
-keep public class * extends android.app.Activity
Run Code Online (Sandbox Code Playgroud)
或者你想保留什么课程。看看这个 - https://www.guardsquare.com/en/proguard/manual/examples
| 归档时间: |
|
| 查看次数: |
8561 次 |
| 最近记录: |