所以看起来要部署的最新播放服务中存在一个错误。 有谁知道如何解决这个问题?
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':myappname:transformClassesWithAndroidGradleClassShrinkerForDevelopmentDebug'.
> ProGuard configuration parser error: /Users/myusername/.gradle/caches/transforms-1/files-1.1/play-services-base-11.8.0.aar/d2ad9e16677fda9cf07a1280a66e91ca/proguard.txt line 3:88 no viable alternative at input '<fields>'
更多信息。似乎问题出现在核心模块中:
Error:Execution failed for task ':myappname:transformClassesWithAndroidGradleClassShrinkerForDevelopmentDebug'.
> ProGuard configuration parser error: /Users/myusername/.gradle/caches/transforms-1/files-1.1/play-services-base-11.8.0.aar/d2ad9e16677fda9cf07a1280a66e91ca/proguard.txt line 3:88 no viable alternative at input '<fields>'
编辑: 导致该错误的文件的内容是:
# b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
com.google.android.gms.common.api.internal.BasePendingResult.ReleasableResultGuardian <fields>;
}
答案 0 :(得分:74)
默认收缩者似乎已经改变了。添加配置以打开ProGuard似乎有效。
buildTypes {
release {
debuggable false
minifyEnabled true
useProguard true
...
}
debug {
debuggable true
minifyEnabled true
useProguard true
...
}
}
答案 1 :(得分:11)
除了上述解决方案(有效)之外:该问题似乎也与Instant Run有关。 如果禁用“即时运行”,则可以在不更改build.gradle的情况下构建应用程序。 可能只有在为Instant Run构建时才会更改默认收缩器。
答案 2 :(得分:2)
这个解决方案帮助了我:
首先,在app / build.gradle中将useProguard更改为'true'
其次,在proguard规则中添加'-dontobfuscate'行
buildTypes {
release {
debuggable false
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
...
}
debug {
debuggable true
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
...
}
}
proguard-rules.pro
-dontobfuscate
因此,minify将起作用,但代码不会混淆。
答案 3 :(得分:1)
我注意到如果你禁用了Instant Run,那么构建仍然会失败并出现相同的错误(如果你启用了minify但是Proguard禁用了缩小你的代码以避免调试版本中的多dex)。如果您按照Brill Pappin回答,则必须启用Instant Run(并根据提示安装库)以在调试时点击任何断点。
如果您使用Google Play Play服务使用即时运行,现在只能启用Google docs中所述的收缩器。