imablanco / Zoomy

Zoomy is an easy to use pinch-to-zoom Android library
918 stars 120 forks source link

Cannot set 'scaleX' to Float.NaN, Fatal Exception: java.lang.IllegalArgumentException #37

Open TorkelV opened 3 years ago

TorkelV commented 3 years ago

Hi, I'm seeing this crash for some users(affects ~0.01%), all of them on android 10.

Any idea what it might be, or how to work around it?

This is all the code, not using any additional features of the library:

<ImageView
   android:id="@+id/imageView"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:adjustViewBounds="true"
   android:animateLayoutChanges="true"
   android:scaleType="centerCrop"
   android:src="@drawable/img" />
Picasso.get()
    .load(imageUrl)
    .error(R.drawable.img)
    .placeholder(R.drawable.img)
    .into(imageView)

Zoomy.Builder = Zoomy.Builder(this).target(imageView)
builder.register()

Exception:

Fatal Exception: java.lang.IllegalArgumentException
Cannot set 'scaleX' to Float.NaN
android.view.View.sanitizeFloatPropertyValue (View.java:18167)
android.view.View.sanitizeFloatPropertyValue (View.java:18141)
android.view.View.setScaleX (View.java:17494)
com.ablanco.zoomy.ZoomableTouchListener.onScale (ZoomableTouchListener.java:223)
android.view.ScaleGestureDetector.onTouchEvent (ScaleGestureDetector.java:376)
com.ablanco.zoomy.ZoomableTouchListener.onTouch (ZoomableTouchListener.java:112)
android.view.View.dispatchTouchEvent (View.java:14372)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.widget.ScrollView.dispatchTouchEvent (ScrollView.java:857)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:3863)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:3551)
com.android.internal.policy.DecorView.superDispatchTouchEvent (DecorView.java:733)
com.android.internal.policy.PhoneWindow.superDispatchTouchEvent (PhoneWindow.java:1922)
android.app.Activity.dispatchTouchEvent (Activity.java:4051)
androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:69)
androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent (WindowCallbackWrapper.java:69)
com.android.internal.policy.DecorView.dispatchTouchEvent (DecorView.java:691)
android.view.View.dispatchPointerEvent (View.java:14644)
android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:6526)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:6313)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5751)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5804)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5770)
android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:5926)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5778)
android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:5983)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5751)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:5804)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:5770)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:5778)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:5751)
android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:8910)
android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:8771)
android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:8724)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:9046)
android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:194)
android.view.InputEventReceiver.nativeConsumeBatchedInputEvents (InputEventReceiver.java)
android.view.InputEventReceiver.consumeBatchedInputEvents (InputEventReceiver.java:183)
android.view.ViewRootImpl.doConsumeBatchedInput (ViewRootImpl.java:8986)
android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run (ViewRootImpl.java:9073)
android.view.Choreographer$CallbackRecord.run (Choreographer.java:996)
android.view.Choreographer.doCallbacks (Choreographer.java:794)
android.view.Choreographer.doFrame (Choreographer.java:722)
android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:981)
android.os.Handler.handleCallback (Handler.java:883)
android.os.Handler.dispatchMessage (Handler.java:100)
android.os.Looper.loop (Looper.java:237)
android.app.ActivityThread.main (ActivityThread.java:7948)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1075)
uzman commented 1 year ago

I have same problem. Anyone found a solution to it?

dev-lcc commented 11 months ago

I'm having the same issue. Are there any updates?

rsvp-lawrencec commented 5 months ago

Any updates on this?