Android 添加Glide v4后的Proguard错误
在添加glide v4库后,我无法生成启用proguard的apk。 我在proguard规则中添加了以下几行Android 添加Glide v4后的Proguard错误,android,proguard,android-glide,Android,Proguard,Android Glide,在添加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.Ima
-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\u recycle.LruBitmapPool:
找不到引用的字段“android.graphics.Bitmap$Config HARDWARE”
在库类android.graphics.Bitmap$Config中
保存时可以使用以下命令忽略这些警告:
-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
看到这个你也可以将你的
编译版本
增加到26。这将考虑Glide v4使用的新功能。我假设您从中获取了proguard规则,但它写错了。换行
-keep public class*扩展com.bumptech.glide.AppGlideModule
为此:
-keep public class*扩展com.bumptech.glide.module.AppGlideModule
如您所见,
模块
包丢失。它也有适当的记录。您还可以从外部库中检查AppGlideModule
类路径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 *;
}
如果您的目标API级别低于Android API 27,还应包括:
-dontwarn com.bumptech.glide.load.resource.bitmap.VideoDecoder
VideoDecoder使用API 27 API,这可能会导致proguard警告,即使较旧版本的Android设备上不会调用较新的API