Java ProGuard构建在具有OpenCSV依赖项的Android上失败
我依赖OpenCSV 3.8,发布版本失败,出现ProGuard错误: 警告:org.apache.commons.beanutils.MappedPropertyDescriptor:在程序类org.apache.commons.beanutils.MappedPropertyDescriptor中找不到引用的方法“void setName(java.lang.String)” 我可以试着忽略它,但这听起来不是个好办法Java ProGuard构建在具有OpenCSV依赖项的Android上失败,java,android,proguard,android-proguard,opencsv,Java,Android,Proguard,Android Proguard,Opencsv,我依赖OpenCSV 3.8,发布版本失败,出现ProGuard错误: 警告:org.apache.commons.beanutils.MappedPropertyDescriptor:在程序类org.apache.commons.beanutils.MappedPropertyDescriptor中找不到引用的方法“void setName(java.lang.String)” 我可以试着忽略它,但这听起来不是个好办法 有趣的是,OpenCSV 3.8依赖于commons beanutils
有趣的是,OpenCSV 3.8依赖于commons beanutils 1.9.3,而本地安装的是1.9.2。您需要在progaud文件中添加以下apache通信规则:
-keep class org.apache.commons.** { *; }
Progaurd将使用上述规则,并且不会混淆包org.apache.commons
中包含的类,所以您可以使用它
谢谢。您需要在progaurd文件中为
apache通信添加以下规则:
-keep class org.apache.commons.** { *; }
Progaurd将使用上述规则,并且不会混淆包org.apache.commons
中包含的类,所以您可以使用它
谢谢。我在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
希望这将对您和其他面临类似问题的人有所帮助。我在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
希望这对您和其他面临类似问题的人有所帮助。您的问题是什么?@Peter4499如何在不忽略错误的情况下修复生成错误。@4ybaka您找到解决方法了吗?@Dharmendra no,我只是忽略了警告你的问题是什么?@Peter4499如何在不忽略它的情况下修复生成错误。@4ybaka你找到任何解决方法了吗?@Dharmendra不,我只是忽略了警告对我不起作用。生成失败,并出现相同的错误。对我不起作用。生成失败,并出现相同的错误。