Android Studio&ProGuard:无法parsing符号getDefaultProguardFile?

IDE :Android Studio 1.1.0

主题 :ProGuard

问题 :Android Studio无法识别的ProGuard文件或工具, getDefaultProguardFile 无法parsing ,应用程序中没有proguard-android.txtproguard-rules.txt文件,请参阅以下图像:(从build.gradle)

build.gradle截图

如何解决这个问题,并实现ProGuard保护我的应用程序?

尝试改变成 –

 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

我遇到了同样的麻烦,如下所示:

在这里输入图像说明

错误消息使得它看起来好像该文件没有被find,因此没有被读取。 但是,我进入sdk / tools / proguard文件夹来查找文件,并在顶部添加了一个语句来testing文件是否被实际读取。 我把它放在顶部“这会崩溃吗?”

在这里输入图像说明

正如您从错误中看到的那样,在构build过程中确实发现了该文件,并且我添加的语句崩溃了。 因此,看起来“不能解决的符号”错误是给出了一个误报。

我真的有同样的问题。 所以这就是我的项目工作的原因:

 release { minifyEnabled true proguardFile 'proguard-rules.pro' } 

通过此代码testing:

  Log.d(TAG, "TEST!"); Log.i(TAG, "INFO!"); Log.e(TAG, "ERROR!"); 

在proguard.pro中,我放置了这个片段(它删除了字节码中的所有Log.d语句)

 -assumenosideeffects class android.util.Log { public static int d(...); } 

猫说:

 MainAct﹕ INFO! MainAct﹕ ERROR! 

– >正是我试图实现:)

PS:这假定你有模块(又名'app')文件夹中的proguard.pro文件。

尝试:

proguardFiles.add(file('proguard-android.txt')) proguardFiles.add(file('proguard-rules.txt'))

这个结构在gradle-experimental插件中起作用

我解决了Android Studio的问题,而不是使用双引号来识别方法,而是使用双引号。 以下是我最终使用的:

  release{ shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } 

尝试这个,

 { minifyEnabled false // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles 'proguard-rules.pro' } 

在我的情况下:

 buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 

minifyEnabled false工作replacerunProguard false