emen
emen

Reputation: 6328

KenBurnsView - Load image from a url returns NPE

I'm trying to use KenBurnsView library into my ImageView to get the Ken Burn's effect. But it returns null pointer exception each time I want to load an image from a url using Image Loader.

Here is the stack trace:

06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ java.lang.NullPointerException
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.MathUtils.getRectRatio(MathUtils.java:44)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.RandomTransitionGenerator.generateRandomRect(RandomTransitionGenerator.java:93)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.RandomTransitionGenerator.generateNextTransition(RandomTransitionGenerator.java:64)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.startNewTransition(KenBurnsView.java:207)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.handleImageChange(KenBurnsView.java:280)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.setImageDrawable(KenBurnsView.java:140)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.imageaware.ImageViewAware.setImageDrawable(ImageViewAware.java:171)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:252)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:357)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:335)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$2.onResponse(HomeFragment.java:513)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$2.onResponse(HomeFragment.java:450)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.utils.GsonRequest.deliverResponse(GsonRequest.java:106)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$1.deliverResponse(HomeFragment.java:425)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$1.deliverResponse(HomeFragment.java:420)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:733)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Looper.loop(Looper.java:136)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5001)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:515)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-20 16:05:57.495    7442-7442/com.kedai.baucar W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)

Also, I've found a similar question here, but this one instead loading from a url, it loads on run-time.

I've tried the solution by adding updateDrawableBounds(); inside setImageResource(int resId) method, still couldn't make it.

Has anyone ever experienced this before? How do you fix this?

Upvotes: 0

Views: 470

Answers (3)

Flávio Faria
Flávio Faria

Reputation: 6605

I'm the author of the library and I just pushed a few changes that I believe that will fix your problem. Please download the latest version (v1.0.3) and let me know if it happens again.

Upvotes: 1

Behnam
Behnam

Reputation: 6620

Try switching the position of "super" call and updateDrawableBounds() in your overriden setImageResource()/setImageDrawable() method.

Upvotes: 1

Nickolai Astashonok
Nickolai Astashonok

Reputation: 2888

It looks like an issue in library. For more details check this answer (with solution): KenBurnsView how to set image resource?

Upvotes: 0

Related Questions