Skip to content

ImageLoader must be init with configuration before using #180

Closed
@westlinkin

Description

@westlinkin

I init the ImageLoader when the app is open. But I still got this problem causes crash.

I got this: java.lang.IllegalStateException: ImageLoader must be init with
configuration before using

this FC is not happen all the time, only occasionally

Activity

westlinkin

westlinkin commented on Feb 25, 2013

@westlinkin
Author

here is the log:

  1. com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:350)
  2. com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:191)
  3. com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:153)
  4. com.vtube.app.VideoGridviewAdapter.bindView(VideoGridviewAdapter.java:137)
  5. com.vtube.app.VideoGridviewAdapter.createViewFromResource(VideoGridviewAdapter.java:77)
  6. com.vtube.app.VideoGridviewAdapter.getView(VideoGridviewAdapter.java:55)
  7. android.widget.AbsListView.obtainView(AbsListView.java:2043)
  8. android.widget.GridView.onMeasure(GridView.java:1026)
  9. android.view.View.measure(View.java:12752)
  10. android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
  11. android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
  12. android.view.View.measure(View.java:12752)
  13. android.widget.LinearLayout.measureVertical(LinearLayout.java:812)
  14. android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
  15. android.view.View.measure(View.java:12752)
  16. android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:594)
  17. android.widget.RelativeLayout.onMeasure(RelativeLayout.java:376)
  18. android.view.View.measure(View.java:12752)
  19. android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
  20. android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
  21. android.view.View.measure(View.java:12752)
  22. android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
  23. android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
  24. android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
  25. android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
  26. android.view.View.measure(View.java:12752)
  27. android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
  28. android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
  29. com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2265)
  30. android.view.View.measure(View.java:12752)
  31. android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1074)
  32. android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2462)
  33. android.os.Handler.dispatchMessage(Handler.java:99)
  34. android.os.Looper.loop(Looper.java:137)
  35. android.app.ActivityThread.main(ActivityThread.java:4486)
  36. java.lang.reflect.Method.invokeNative(Native Method)
  37. java.lang.reflect.Method.invoke(Method.java:511)
  38. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  39. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  40. dalvik.system.NativeStart.main(Native Method)
nostra13

nostra13 commented on Feb 25, 2013

@nostra13
Owner

It happens when you go back from long time app background, right?

westlinkin

westlinkin commented on Feb 26, 2013

@westlinkin
Author

yeah, is there a way to fix this?

nostra13

nostra13 commented on Feb 28, 2013

@nostra13
Owner

Yes, init ImageLoader in every Activity.onCreate().
You can check whether ImageLoader is inited by imageLoader.isInited()

doapp-nick

doapp-nick commented on Feb 28, 2013

@doapp-nick

Like many java libraries that utilize static singletons, the best way to integrate them into Android is to create an Application class and initialize in Application.onCreate OR to create a subclass of Activity which initializes the library in onCreate with a static boolean flag that prevents additional initialization then have all of your Activities extend this 'BaseActivity'.

If you want to test that you've fixed this problem, you can do so by minimizing your application when attached to DDMS, killing your process with the stop button in the eclipse ddms (or kill -9 via adb shell), and then switching back to your activity, this will cause your application to be created in a new process which will not retain your static vars.

westlinkin

westlinkin commented on Mar 1, 2013

@westlinkin
Author

big thanks to @doapp-nick and @nostra13 , this is solved.

kiran-path

kiran-path commented on Jun 13, 2015

@kiran-path

Hi, Am facing an issue ,
06-13 14:31:09.890 4566-4566/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.demo.eyeandbuy, PID: 4566
java.lang.RuntimeException: ImageLoader must be init with configuration before using
at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:168)
at com.demo.eyeandbuy.ViewProducts$ImagePagerAdapter.instantiateItem(ViewProducts.java:319)
at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837)
at android.support.v4.view.ViewPager.populate(ViewPager.java:987)
at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607)
at android.view.View.measure(View.java:16834)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:824)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:500)
at android.view.View.measure(View.java:16834)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1237)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at android.widget.ScrollView.onMeasure(ScrollView.java:326)
at android.view.View.measure(View.java:16834)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:824)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:500)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2368)
at android.view.View.measure(View.java:16834)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2246)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1312)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1509)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1189)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6223)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
at android.view.Choreographer.doCallbacks(Choreographer.java:591)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @doapp-nick@nostra13@westlinkin@kiran-path

        Issue actions

          ImageLoader must be init with configuration before using · Issue #180 · nostra13/Android-Universal-Image-Loader