添加glide v4库后,我无法生成带有proguard的apk。 我在proguard-rules
中添加了以下行-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 HARDWARE' 在库类android.graphics.Bitmap $ Config
中
答案 0 :(得分:2)
使用以下命令忽略这些警告:
-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
请参阅此post
答案 1 :(得分:0)
我假设您从this glide page接受了您的proguard规则,但它被误写了。替换下面的行
-keep public class * extends com.bumptech.glide.AppGlideModule
用这个:
-keep public class * extends com.bumptech.glide.module.AppGlideModule
如您所见,module
包丢失了。它也有适当的记录on README page。您还可以从外部库检查AppGlideModule
类路径。
答案 2 :(得分:0)
<强> 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,也可能会导致预警警告。
答案 3 :(得分:-1)
您也可以将compileSdkVersion
增加到26.这会照顾Glide v4使用的新功能。