dji-sdk / Mobile-UXSDK-Android

DJI Mobile UXSDK is a suite of product agnostic UI objects that fast tracks the development of Android applications using the DJI Mobile SDK.
Other
154 stars 109 forks source link

Pre Flight Checklist Widget Crash #117

Open jmadrigal47895 opened 3 years ago

jmadrigal47895 commented 3 years ago

The RecyclerView in the Pre-flight checklist panel is not recycling something properly in the RecyclerView adapter and crashes our app. It happens rarely but it does happen. Here is the log from Crashlytics:

Fatal Exception: java.lang.IllegalArgumentException: Tmp detached view should be removed from RecyclerView before it can be recycled: e{32d0af0 position=5 id=-1, oldPos=-1, pLpos:-1 update tmpDetached no parent} dji.ux.internal.RecyclerListView{3e50c48 VFED.V... ......ID 0,0-535,709 #7f0903b7 app:id/recycle_list_view_content}, adapter:dji.ux.a.c@9f45ae1, layout:androidx.recyclerview.widget.LinearLayoutManager@bc17006, context:tech.fluidity.ftaviator.ui.activity.fly.FlyActivity@a5b8729 at androidx.recyclerview.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:6439) at androidx.recyclerview.widget.RecyclerView.removeAnimatingView(RecyclerView.java:1456) at androidx.recyclerview.widget.RecyclerView$ItemAnimatorRestoreListener.onAnimationFinished(RecyclerView.java:12699) at androidx.recyclerview.widget.RecyclerView$ItemAnimator.dispatchAnimationFinished(RecyclerView.java:13199) at androidx.recyclerview.widget.SimpleItemAnimator.dispatchChangeFinished(SimpleItemAnimator.java:317) at androidx.recyclerview.widget.DefaultItemAnimator$8.onAnimationEnd(DefaultItemAnimator.java:391) at android.view.ViewPropertyAnimator$AnimatorEventListener.onAnimationEnd(ViewPropertyAnimator.java:1111) at android.animation.Animator$AnimatorListener.onAnimationEnd(Animator.java:554) at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1250) at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1492) at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146) at android.animation.AnimationHandler.access$100(AnimationHandler.java:37) at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1008) at android.view.Choreographer.doCallbacks(Choreographer.java:809) at android.view.Choreographer.doFrame(Choreographer.java:740) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8506) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

dji-dev commented 3 years ago

Agent comment from William Wong in Zendesk ticket #45028:

Dear Client Thank you for contacting DJI.

I am sorry the crashes, we will check it internally. Meanwhile you can have a look the UXSDK 5.0 which is open source project. You can change the internal structure if you like. Link:https://github.com/dji-sdk/Mobile-UXSDK-Beta-Android

Hopefully our solution can help you. Kindly Regards, DJI Developer Support

jmadrigal47895 commented 3 years ago

Thank you! I appreciate the quick response.