Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 添加Glide v4后的Proguard错误_Android_Proguard_Android Glide - Fatal编程技术网

Android 添加Glide v4后的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

在添加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\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