繁体   English   中英

添加Glide v4后出现Proguard错误

[英]Proguard error after adding Glide v4

添加glide v4库后,我无法生成带有proguard的apk。 我在proguard规则中添加了以下行

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.AppGlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

它在构建时显示以下错误。

警告:com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool:在库类android.graphics.Bitmap $ Config中找不到引用字段'android.graphics.Bitmap $ Config HARDWARE'

保存忽略这些警告使用:

-dontwarn com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool
-dontwarn com.bumptech.glide.load.resource.bitmap.Downsampler
-dontwarn com.bumptech.glide.load.resource.bitmap.HardwareConfigState

看这篇文章

Proguard的

如果使用proguard,则可能需要在proguard.cfg中添加以下行:

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

如果您的targeting any API level less than Android API 27 ,还包括:

-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder

VideoDecoder使用API​​ 27 API,即使在使用旧版Android的设备上不会调用较新的API,也可能导致预警警告。

我假设你从这个滑行页面中采用了你的proguard规则,但它被误写了。 替换下面的行

-keep public class * extends com.bumptech.glide.AppGlideModule

有了这个:

-keep public class * extends com.bumptech.glide.module.AppGlideModule

如您所见,缺少module包。 它也在README页面上正确记录。 您还可以从外部库中检查AppGlideModule类路径。

您也可以将compileSdkVersion增加到26.这将处理Glide v4使用的新功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM