我最近使用Google Play服务和Suppport V4最新版本库将proguard添加到了一个庞大的项目中。
我没有在proguard配置文件中添加有关这些库的任何内容,我只需添加:
-ignorewarnings
-dontobfuscate
现在我注意到在proguard输出文件usage.txt(你可以看到proguard删除的所有代码),这是来自google play services和android support v4的很多代码。
我检查了官方文档,如果您使用的是proguard,我没有找到任何关于为支持v4和Google Play服务添加例外的内容,我只是发现了这个:
注意:ProGuard指令包含在Play服务客户端中 库以保留所需的类。 Android插件 Gradle会自动将ProGuard配置文件附加到AAR中 (Android ARchive)包并将该包附加到您的ProGuard 组态。在项目创建期间,Android Studio会自动生成 创建ProGuard配置文件和build.gradle属性 用于ProGuard。要在Android Studio中使用ProGuard,您必须启用 build.gradle buildTypes中的ProGuard设置。更多 有关信息,请参阅ProGuard指南。
但问题是我没有使用Android Studio进行编译,我正在使用ant和eclipse从命令行编译,我没有使用gradle,所以我不确定是否必须在proguard配置中添加一些内容文件,我无法在官方文档中找到任何相关内容。
如果我不在这些库的proguard配置中添加内容,我将来会遇到问题吗?
答案 0 :(得分:0)
我有几个v4项目,并且在proguard配置中不需要任何特殊功能。我唯一能找到的是
# Supporting compatibility library
-dontwarn android.support.**
如果移除它会看起来不会有害。
<强>已更新强>
对于Google Play服务:
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}