2017-01-16 11 views
0

У меня есть зависимость от OpenCSV 3.8 и релиз сборки с ошибкой ProGuard:ProGuard сборки не удалось на Android с OpenCSV зависимости

Warning:org.apache.commons.beanutils.MappedPropertyDescriptor: can't find referenced method 'void setName(java.lang.String)' in program class org.apache.commons.beanutils.MappedPropertyDescriptor

Я могу попытаться игнорировать его, но это не звучит хорошо исправить.

Интересно, что OpenCSV 3.8 зависит от Commons-beanutils 1.9.3 при локальном размещении 1.9.2.

+0

Что вы хотите сказать? – Peter4499

+0

@ Peter4499 как исправить ошибку сборки, не игнорируя ее. – 4ybaka

+0

@ 4ybaka Вы нашли какое-нибудь обходное решение? – Dharmendra

ответ

0

Вы должны добавить ниже правила для apache comms в файле progaurd:

-keep class org.apache.commons.** { *; } 

Progaurd будет использовать выше правило и не запутать классов, содержащихся в пакете org.apache.commons так что вы можете использовать его.

Спасибо.

+1

Не работает для меня. Сбой сборки с той же ошибкой. – 4ybaka

0

У меня была аналогичная проблема с 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 

Надеюсь, это поможет вам и другим, кто сталкивается с аналогичной проблемой.