使用ProGuard的Google Play服务和支持V4 ......问题?

时间:2015-08-07 07:27:53

标签: android google-play-services proguard android-proguard

我最近使用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配置中添加内容,我将来会遇到问题吗?

1 个答案:

答案 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 *;
}