错误:在生成APK时,执行任务':app:transformClassesAndResourcesWithProguardForRelease'失败APK

问题描述:

我已经生成了我的Android应用程序的APK(作为一个尝试),我没有任何问题,APK已经正确生成。错误:在生成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所以我认为这是相关的东西(因为警告中出现的包的名称),但我不能纠正这些警告。

编辑:作为一个证明,我试图保持使用类:

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

proguard-rules.pro文件,但我仍然有同样的警告。

releasebuild.gradle文件部分是:

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

我失去的东西,而混淆我的代码?

在此先感谢!

+0

[检查这个(http://*.com/questions/33589318/error-building-apk-when-minifyenabled-true) –

+0

@VygintasB我不认为'-dontwarn'将是一个安全的选项。我正在尝试使用'-keep'公开课程,但我无法使其工作。 –

最后,我发现MPAndroidChart有一个document其中告诉你如何配置Proguard。

通过以下配置:

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

我可以没有任何警告创建模糊处理APK。

另外,我注意到,itextpdf是我在过去使用的库,但我并不需要它现在这样我就不得不从依赖删除它在我的gradle这个文件,并警告也dissapeared。

我在apk生成过程中发现了这个问题的解决方案。

打开应用程序的build.gradle并更改构建类型,如下所示。

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 
    } 
}