3

I want to gridview and listview using Android-Universal-Image-Loader.

https://github.com/nostra13/Android-Universal-Image-Loader

I downloaded and modified it.

it works fine, however when I change and move the source to another project, it's crashed.

I don't know why :(

there is no error and any error messages.

I think it's null point error or initiate library.

I think error will comes with this part.

 listView = (GridView) findViewById(R.id.gridview); ((GridView) listView).setAdapter(new ImageAdapter()); 

and

 public class ImageAdapter extends BaseAdapter { @Override public int getCount() { Log.v("OWL","TEST1"); return imageUrls.length; } @Override public Object getItem(int position) { Log.v("OWL","TEST2"); return null; } @Override public long getItemId(int position) { Log.v("OWL","TEST3"); return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Log.v("OWL","TEST4"); final ImageView imageView; if (convertView == null) { imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false); Log.v("OWL","TEST5"); } else { imageView = (ImageView) convertView; Log.v("OWL","TEST6"); } imageLoader.displayImage(imageUrls[position], imageView, options); Log.v("OWL","TEST7"); return imageView; } } 

I cannot see TEST6, TEST7 on the LOGCAT

I attached log blow. please help me or let't me know how to use that library.

03-25 18:24:17.208: D/AndroidRuntime(312): Shutting down VM 03-25 18:24:17.208: W/dalvikvm(312): threadid=1: thread exiting with uncaught exception (group=0x41693438) 03-25 18:24:17.228: E/AndroidRuntime(312): FATAL EXCEPTION: main 03-25 18:24:17.228: E/AndroidRuntime(312): java.lang.IllegalStateException: ImageLoader must be init with configuration before using 03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration(ImageLoader.java:359) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:200) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:162) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.kmob.camera.ImageGridActivity$ImageAdapter.getView(ImageGridActivity.java:117) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.AbsListView.obtainView(AbsListView.java:2449) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.GridView.onMeasure(GridView.java:1030) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:617) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:399) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1396) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4824) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2359) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.View.measure(View.java:15364) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1974) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1217) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1390) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1110) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4472) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer.doCallbacks(Choreographer.java:555) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer.doFrame(Choreographer.java:525) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Handler.handleCallback(Handler.java:615) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Handler.dispatchMessage(Handler.java:92) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.os.Looper.loop(Looper.java:137) 03-25 18:24:17.228: E/AndroidRuntime(312): at android.app.ActivityThread.main(ActivityThread.java:4918) 03-25 18:24:17.228: E/AndroidRuntime(312): at java.lang.reflect.Method.invokeNative(Native Method) 03-25 18:24:17.228: E/AndroidRuntime(312): at java.lang.reflect.Method.invoke(Method.java:511) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 03-25 18:24:17.228: E/AndroidRuntime(312): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 03-25 18:24:17.228: E/AndroidRuntime(312): at dalvik.system.NativeStart.main(Native Method) 
1
  • 03-25 18:24:17.228: E/AndroidRuntime(312): java.lang.IllegalStateException: ImageLoader must be init with configuration before using. Learn to read logcat. You havent init configuration for your loader. Use Kroger's answer and remove parts you don't need. Commented Mar 26, 2013 at 2:10

3 Answers 3

9

Did you resolve this problem? You need to initialize the imageLoader with the example code on the UniversalImageLoader:

File cacheDir = StorageUtils.getCacheDirectory(context); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) .memoryCacheExtraOptions(480, 800) // default = device screen dimensions .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75) .taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR) .taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR) .threadPoolSize(3) // default .threadPriority(Thread.NORM_PRIORITY - 1) // default .tasksProcessingOrder(QueueProcessingType.FIFO) // default .denyCacheImageMultipleSizesInMemory() .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // default .memoryCacheSize(2 * 1024 * 1024) .discCache(new UnlimitedDiscCache(cacheDir)) // default .discCacheSize(50 * 1024 * 1024) .discCacheFileCount(100) .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default .imageDownloader(new BaseImageDownloader(context)) // default .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .enableLogging() .build(); 
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks. the sample project initialize the imageLoader at the Manifest file!!!!! I didn't know that :(
What do you mean initialize the imageLoader in the Manifest file?
@Kgrover the AndroidManifest.xml of sample app has android:name=".UILApplication"
1

It looks like wherever you create your imageLoader, you need to call imageLoader.init(someConfigObject);

someConfigObject is of type ImageLoaderConfiguration

Comments

0

Use this Simple Code Is Working

init ImageLoader into yor adapter class

imageLoader = ImageLoader.getInstance(); imageLoader.init(ImageLoaderConfiguration.createDefault(ctx)); 

Then use this below code into place on set image it will working...

DisplayImageOptions options=new DisplayImageOptions.Builder() .cacheInMemory(true) .resetViewBeforeLoading(true) .showImageOnFail(R.drawable.stories_holder_sq) .showImageForEmptyUri(R.drawable.stories_holder_sq) .showImageOnLoading(R.drawable.stories_holder_sq) .build(); imageLoader.displayImage(naturalDashBoardBean.getImgUrl(), categoryViewHolder.categoryItemImg, options); 

1 Comment

if u need more info about universal imageloader and load easy way and also cache the image view to try this stackoverflow.com/a/40154744/6477998

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.