一.如果纯粹是java 项目
编译报错android java.nio.charset.MalformedInputException: Input length = 1
Glide4.6.1新版本配置, GlideApp 无法生成的问题的解决,配置是有要求的,低版本会出问题,无法编译报错,具体解决办法如下
依赖配置如下
Glide 4.6.1的sdk build版本必须为>=27,必须保证所有的support 的版本为相同并且为27.1.0
compile 'com.github.bumptech.glide:glide:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
compile 'com.android.support:support-annotations:27.1.0'
compile 'com.android.support:appcompat-v7:27.1.0'
在Application或者module模块中添加如下代码
这个地方需要注意的是@GlideModule这个注解不能少,添加完代码后clean->rebuild即可看到如下代码:
app/build/generated/source/apt/debug/com/leo/GlideApp.java
packagecom.leo.app;
importandroid.content.Context;
importandroid.support.annotation.NonNull;
importcom.bumptech.glide.Glide;
importcom.bumptech.glide.GlideBuilder;
importcom.bumptech.glide.Registry;
importcom.bumptech.glide.annotation.GlideModule;
importcom.bumptech.glide.module.AppGlideModule;
@GlideModule
publicfinalclassGlobalGlideConfig extendsAppGlideModule {
@Override
publicbooleanisManifestParsingEnabled() {
// return super.isManifestParsingEnabled();
returnfalse;
}
@Override
publicvoidapplyOptions(@NonNullContext context, @NonNullGlideBuilder builder) {
super.applyOptions(context, builder);
}
@Override
publicvoidregisterComponents(@NonNullContext context, @NonNullGlide glide, @NonNullRegistry registry) {
super.registerComponents(context, glide, registry);
}
}
如果项目中有多个module,那么应该放到sdk的module来生成代码,这样其他模块依赖sdk模块后就可以使用GlideApp了。
二,kotlin 项目配置
implementation("com.github.bumptech.glide:glide:$glide_version") {
force =true
}
dependencies {
kapt'com.github.bumptech.glide:compiler:4.8.0'
}
接下来重点来了,这个kotlin_kapt插件一定不要忘记了,不然你怎么都无法生成GlideApp
applyplugin:'kotlin-kapt'
clean - > rebuild 就ok了,然后就可以看到GlideApp了