我对OpenCSV 3.8有依赖,发布版本因ProGuard错误而失败:
警告:org.apache.commons.beanutils.MappedPropertyDescriptor:在程序类org.apache.commons.beanutils.MappedPropertyDescriptor中找不到引用的方法'void setName(java.lang.String)'
我可以尝试忽略它,但听起来不太好。
有趣的是OpenCSV 3.8依赖于commons-beanutils 1.9.3而本地安装1.9.2。
答案 0 :(得分:3)
我在openCSV上有类似的问题:3.9,它在调试版本中显示了一些警告,并且在使用proguard构建时抛出了错误。
要解决此问题,我在下面做了更改,现在我可以构建apk
在模块级build.gradle中添加以下行
configurations {
all*.exclude group: 'commons-logging', module: 'commons-logging'
}
在proguard文件中
-dontwarn com.opencsv.**
-dontwarn org.apache.commons.beanutils.**
-dontwarn org.apache.commons.collections.**
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod
-dontoptimize
希望这对您和其他面临类似问题的人有所帮助。
答案 1 :(得分:0)
您需要在progaurd文件中为apache comms
添加以下规则:
-keep class org.apache.commons.** { *; }
Progaurd将使用上述规则,不会混淆包org.apache.commons
中包含的类,以便您可以使用它。
感谢。