2016-12-29 2 views
1

Я создал APK своего приложения для Android (в качестве попытки), и у меня не было никаких проблем, APK был сгенерирован правильно.Ошибка: выполнение выполнено для задачи ': app: transformClassesAndResourcesWithProguardForRelease' при создании APK

Теперь я хочу обфускать свой код при создании APK, поэтому я использовал следующую строку на моем блоке release на файле build.gradle.

minifyEnabled true 

Проблема заключается в том, что теперь он выдает мне следующую ошибку:

Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'. java.io.IOException: Please correct the above warnings first.

с большим количеством предупреждений. Точнее, 1018 предупреждений.

Большинство из них, как:

Warning:com.itextpdf.text.pdf.security.PdfPKCS7: can't find referenced class org.spongycastle.asn1.tsp.MessageImprint

или

Warning:com.github.mikephil.charting.data.realm.base.RealmBaseDataSet: can't find referenced class io.realm.Sort

Всегда та же ошибка. Класс, который не может найти ссылочный класс.

Я использую MPAndroidChart, так что я думаю, что это что-то связано (из-за названия пакетов, который появляется на предупреждения), но я не в состоянии исправить эти предупреждения.

EDIT: Как доказать, я пытался держать классы используя:

-keep public class com.itextpdf.text.pdf.** 

на моем proguard-rules.pro файла, но я до сих пор имею то же предупреждение.

Мой release раздел на build.gradle файла:

release { 
    minifyEnabled true 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
} 

Могу ли я что-то отсутствует, а запутывания мой код?

Заранее благодарен!

+0

[Проверьте это] (http://stackoverflow.com/questions/33589318/error-building-apk-when-minifyenabled-true) –

+0

@VygintasB Я не думаю, что '-dontwarn' будет безопасным вариант. Я пытаюсь использовать «-keep» в публичных классах, но я не могу заставить его работать. –

ответ

2

И наконец, я обнаружил, что MPAndroidChart имеет document, в котором рассказывается, как настроить Proguard.

со следующей конфигурацией:

-keep class com.github.mikephil.charting.** { *; } 
-dontwarn io.realm.** 

Я был в состоянии создать запутать APK без каких-либо предупреждений.

Кроме того, я заметил, что itextpdf был библиотекой, которую я использовал в прошлом, но мне она не нужна в настоящее время, поэтому мне просто нужно удалить ее из зависимостей моего файла градиента, а предупреждения также исчезли.

1

Я нашел решение этой проблемы во время генерации apk.

Открыть build.gradle приложения и изменить тип сборки следующим образом.

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 
    } 
} 
Смежные вопросы