2017-10-09 66 views
2

저는 글라이드 4를 사용하도록 최근에 내 앱을 업데이트합니다. 글라이드 4.2.0입니다. Gradle을 : 매니페스트글라이드 4에서 글라이드 모듈을 사용하는 방법?

compile 'com.github.bumptech.glide:glide:4.2.0' 
annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0' 
compile ('com.github.bumptech.glide:okhttp3-integration:4.2.0'){ 
    exclude group: 'glide-parent' 
} 

:

<meta-data 
      android:name="com.xxx.MyGlideModule" 
      android:value="GlideModule"/> 

GlideModule 클래스 :

내가 어댑터 내부 글라이드를 사용하는 방법
@GlideModule 
public class MyGlideModule extends AppGlideModule { 

    @Override 
    public void registerComponents(Context context, Glide glide, Registry registry) { 
     OkHttpClient client = new OkHttpClient.Builder() 
       .readTimeout(30, TimeUnit.SECONDS) 
       .writeTimeout(30, TimeUnit.SECONDS) 
       .connectTimeout(30, TimeUnit.SECONDS) 
       .build(); 

     OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client); 

     glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory); 
    } 
} 

:이 코드

 RequestOptions myOptions = new RequestOptions() 
       .placeholder(R.drawable.ic_placeholder) 
       .diskCacheStrategy(DiskCacheStrategy.NONE) 
       .dontAnimate() 
       .skipMemoryCache(true) 
       ; 

     Glide.with(mContext) 
       .load(Imageid[position]) 
       .apply(myOptions) 
       .into(imageView); 

때 나는 그것을 실행합니다. 오류가 발생했습니다 :

java.lang.RuntimeException: Expected instanceof GlideModule, but found: [my app package][email protected] 
    at com.bumptech.glide.module.ManifestParser.parseModule(ManifestParser.java:81) 
    at com.bumptech.glide.module.ManifestParser.parse(ManifestParser.java:43) 
    at com.bumptech.glide.Glide.initializeGlide(Glide.java:193) 
    at com.bumptech.glide.Glide.checkAndInitializeGlide(Glide.java:172) 
    at com.bumptech.glide.Glide.get(Glide.java:156) 
    at com.bumptech.glide.Glide.getRetriever(Glide.java:540) 
    at com.bumptech.glide.Glide.with(Glide.java:566) 
    at [adapter line where I implement Glide] 

어떻게 MyGlideModule을 사용할 수 있습니까?

답변

5

글라이드 4.0은 AndroidMinifest.xml에 "GlideModule"을 선언 할 필요가 없습니다.

  1. YourGlideModule은 AppGlideModule을 확장하므로 YourGlideModule 클래스의 applyOptions 함수를 재정의 할 수 있습니다.
  2. "android studio -> build -> make project"에서 프로젝트를 만들어야 GlideApp 클래스가 생성됩니다.
  3. 는 사용 GlideApp 같은 "(glide_test_iv1) .into GlideApp.with (이) .load (imgUrl에)"는
+0

덕분에, 당신의 방법을 작동합니다. 그들은 이것을 자신의 의사에게 추가해야합니다. readme 또는 마이그레이션 섹션에 있습니다. – Dika

+0

작동. 고맙습니다. – comm1x