Dan*_*n J 6 android proguard gradle android-studio
我在Android Studio中创建了一个新项目,并使用Gradle构建它.
我已经为发布版本添加了我的Proguard集成,每次运行我的assembleRelease步骤时我都会看到这个注释:
Note: the configuration refers to the unknown class 'Object'
Maybe you meant the fully qualified name 'java.lang.Object'?
Run Code Online (Sandbox Code Playgroud)
我的Proguard配置文件或Android SDK文件夹中的所有文件都不包含非限定名称Object.
我的build.gradle包括:
buildTypes {
release {
runProguard true
proguardFile 'proguard-project.txt'
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.release
}
}
Run Code Online (Sandbox Code Playgroud)
当我删除proguardFile上面的两行时,我甚至会看到相同的注释,如果我删除了我的自定义Proguard规则(每次在重建之前进行清理).
我猜这是Gradle的Proguard插件的一个良性问题?
Dan*_*n J 12
感谢Eric Lafortune的建议!添加-printconfiguration到我的proguard.txt显示问题出在google-play-services_lib(r13)中.
有罪的Proguard规则(应该是java.lang.Object[][]):
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
Run Code Online (Sandbox Code Playgroud)
您可以通过右键单击Android Studio,执行Show Package Contents,然后浏览到Mac在Mac上看到此内容sdk/extras/google/google_play_services/libproject/google-play-services_lib/proguard.txt.
最快的解决方法是将正确的Proguard规则添加到您自己的Proguard配置中,然后忽略Proguard Note.
-keep class * extends java.util.ListResourceBundle {
protected java.lang.Object[][] getContents();
}
Run Code Online (Sandbox Code Playgroud)
我将谷歌的这个错误提升为Android问题#63095.
我不知道ObjectAndroid SDK中有任何不合格的引用,但您可以指定-printconfiguration config.txt写出完整配置并查找引用的选项.它可能是方法参数或返回值,很容易被忽略.
| 归档时间: |
|
| 查看次数: |
5177 次 |
| 最近记录: |