Skip to content

Commit

Permalink
fix: experiment with patch provided by @yrichard
Browse files Browse the repository at this point in the history
  • Loading branch information
wouterds committed Jul 5, 2023
1 parent a6896c9 commit 7639c26
Showing 1 changed file with 256 additions and 0 deletions.
256 changes: 256 additions & 0 deletions patches/react-native+0.69.8-2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java
index 52a888c..2b8416a 100644
--- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java
+++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java
@@ -7,6 +7,7 @@

package com.facebook.react.animated;

+import android.util.Log;
import android.util.SparseArray;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
@@ -152,8 +153,11 @@ import java.util.Queue;
public void updateAnimatedNodeConfig(int tag, ReadableMap config) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null) {
- throw new JSApplicationIllegalArgumentException(
- "updateAnimatedNode: Animated node [" + tag + "] does not exist");
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
+ "updateAnimatedNode: Animated node [" + tag + "] does not exist"));
+ return;
}

if (node instanceof AnimatedNodeWithUpdateableConfig) {
@@ -173,10 +177,13 @@ import java.util.Queue;
public void startListeningToAnimatedNodeValue(int tag, AnimatedNodeValueListener listener) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"startListeningToAnimatedNodeValue: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
((ValueAnimatedNode) node).setValueListener(listener);
}
@@ -185,10 +192,13 @@ import java.util.Queue;
public void stopListeningToAnimatedNodeValue(int tag) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"startListeningToAnimatedNodeValue: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
((ValueAnimatedNode) node).setValueListener(null);
}
@@ -197,10 +207,13 @@ import java.util.Queue;
public void setAnimatedNodeValue(int tag, double value) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"setAnimatedNodeValue: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
stopAnimationsForNode(node);
((ValueAnimatedNode) node).mValue = value;
@@ -211,10 +224,13 @@ import java.util.Queue;
public void setAnimatedNodeOffset(int tag, double offset) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"setAnimatedNodeOffset: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
((ValueAnimatedNode) node).mOffset = offset;
mUpdatedNodes.put(tag, node);
@@ -224,10 +240,13 @@ import java.util.Queue;
public void flattenAnimatedNodeOffset(int tag) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"flattenAnimatedNodeOffset: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
((ValueAnimatedNode) node).flattenOffset();
}
@@ -236,10 +255,13 @@ import java.util.Queue;
public void extractAnimatedNodeOffset(int tag) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"extractAnimatedNodeOffset: Animated node ["
+ tag
- + "] does not exist, or is not a 'value' node");
+ + "] does not exist, or is not a 'value' node"));
+ return;
}
((ValueAnimatedNode) node).extractOffset();
}
@@ -249,8 +271,11 @@ import java.util.Queue;
int animationId, int animatedNodeTag, ReadableMap animationConfig, Callback endCallback) {
AnimatedNode node = mAnimatedNodes.get(animatedNodeTag);
if (node == null) {
- throw new JSApplicationIllegalArgumentException(
- "startAnimatingNode: Animated node [" + animatedNodeTag + "] does not exist");
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
+ "startAnimatingNode: Animated node [" + animatedNodeTag + "] does not exist"));
+ return;
}
if (!(node instanceof ValueAnimatedNode)) {
throw new JSApplicationIllegalArgumentException(
@@ -336,17 +361,25 @@ import java.util.Queue;
public void connectAnimatedNodes(int parentNodeTag, int childNodeTag) {
AnimatedNode parentNode = mAnimatedNodes.get(parentNodeTag);
if (parentNode == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"connectAnimatedNodes: Animated node with tag (parent) ["
+ parentNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ dropAnimatedNode(childNodeTag);
+ return;
}
AnimatedNode childNode = mAnimatedNodes.get(childNodeTag);
if (childNode == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"connectAnimatedNodes: Animated node with tag (child) ["
+ childNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ dropAnimatedNode(childNodeTag);
+ return;
}
parentNode.addChild(childNode);
mUpdatedNodes.put(childNodeTag, childNode);
@@ -355,17 +388,23 @@ import java.util.Queue;
public void disconnectAnimatedNodes(int parentNodeTag, int childNodeTag) {
AnimatedNode parentNode = mAnimatedNodes.get(parentNodeTag);
if (parentNode == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"disconnectAnimatedNodes: Animated node with tag (parent) ["
+ parentNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ return;
}
AnimatedNode childNode = mAnimatedNodes.get(childNodeTag);
if (childNode == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"disconnectAnimatedNodes: Animated node with tag (child) ["
+ childNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ return;
}
parentNode.removeChild(childNode);
mUpdatedNodes.put(childNodeTag, childNode);
@@ -375,10 +414,14 @@ import java.util.Queue;
public void connectAnimatedNodeToView(int animatedNodeTag, int viewTag) {
AnimatedNode node = mAnimatedNodes.get(animatedNodeTag);
if (node == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"connectAnimatedNodeToView: Animated node with tag ["
+ animatedNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ dropAnimatedNode(animatedNodeTag);
+ return;
}
if (!(node instanceof PropsAnimatedNode)) {
throw new JSApplicationIllegalArgumentException(
@@ -414,10 +457,13 @@ import java.util.Queue;
public void disconnectAnimatedNodeFromView(int animatedNodeTag, int viewTag) {
AnimatedNode node = mAnimatedNodes.get(animatedNodeTag);
if (node == null) {
- throw new JSApplicationIllegalArgumentException(
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
"disconnectAnimatedNodeFromView: Animated node with tag ["
+ animatedNodeTag
- + "] does not exist");
+ + "] does not exist"));
+ return;
}
if (!(node instanceof PropsAnimatedNode)) {
throw new JSApplicationIllegalArgumentException(
@@ -434,8 +480,11 @@ import java.util.Queue;
public void getValue(int tag, Callback callback) {
AnimatedNode node = mAnimatedNodes.get(tag);
if (node == null || !(node instanceof ValueAnimatedNode)) {
- throw new JSApplicationIllegalArgumentException(
- "getValue: Animated node with tag [" + tag + "] does not exist or is not a 'value' node");
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
+ "getValue: Animated node with tag [" + tag + "] does not exist or is not a 'value' node"));
+ return;
}
callback.invoke(((ValueAnimatedNode) node).getValue());
}
@@ -465,8 +514,12 @@ import java.util.Queue;
int nodeTag = eventMapping.getInt("animatedValueTag");
AnimatedNode node = mAnimatedNodes.get(nodeTag);
if (node == null) {
- throw new JSApplicationIllegalArgumentException(
- "addAnimatedEventToView: Animated node with tag [" + nodeTag + "] does not exist");
+ ReactSoftExceptionLogger.logSoftException(
+ TAG,
+ new ReactNoCrashSoftException(
+ "addAnimatedEventToView: Animated node with tag [" + nodeTag + "] does not exist"));
+ dropAnimatedNode(nodeTag);
+ return;
}
if (!(node instanceof ValueAnimatedNode)) {
throw new JSApplicationIllegalArgumentException(

11 comments on commit 7639c26

@yrichard
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fingers crossed!

@wouterds
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So far so good, haven't been able to reproduce it yet!

@wouterds
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm maybe not com.facebook.react.bridge.JSApplicationIllegalArgumentException: connectAnimatedNodes: Animated node with tag (parent) [16517] does not exist, it is patched though if I manually check node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java.

@wouterds
Copy link
Owner Author

@wouterds wouterds commented on 7639c26 Jul 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I didn't re-compile Android, I just patched the file in my node_modules

@wouterds
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update: so I do see the soft crashes being logged and the app continues to work fine however once occurred it seems to be coming in more frequently, and eventually the app did crash somewhere else but I suspect it is related. Good enough as temporary work around I'd say though.

07-06 10:24:05.556  6204  6204 E AndroidRuntime: FATAL EXCEPTION: main
07-06 10:24:05.556  6204  6204 E AndroidRuntime: Process: io.evix.reactnativetvexample, PID: 6204
07-06 10:24:05.556  6204  6204 E AndroidRuntime: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mapped property node does not exists
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:230)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Mapped property node does not exists
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.animated.PropsAnimatedNode.updateView(PropsAnimatedNode.java:100)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes(NativeAnimatedNodesManager.java:743)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedNodesManager.runUpdates(NativeAnimatedNodesManager.java:650)
07-06 10:24:05.556  6204  6204 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:214)

@wouterds
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm no, it seems unreliable and just crashes further down the line.

07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: Unhandled SoftException
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: com.facebook.react.bridge.ReactNoCrashSoftException: connectAnimatedNodes: Animated node with tag (parent) [3922] does not exist
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedNodesManager.connectAnimatedNodes(NativeAnimatedNodesManager.java:364)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$16.execute(NativeAnimatedModule.java:751)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$ConcurrentOperationQueue.executeBatch(NativeAnimatedModule.java:147)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$3.execute(NativeAnimatedModule.java:332)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$UIBlockOperation.execute(UIViewOperationQueue.java:579)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.568  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: Unhandled SoftException
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: com.facebook.react.bridge.ReactNoCrashSoftException: startAnimatingNode: Animated node [3922] does not exist
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedNodesManager.startAnimatingNode(NativeAnimatedNodesManager.java:274)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$14.execute(NativeAnimatedModule.java:704)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$ConcurrentOperationQueue.executeBatch(NativeAnimatedModule.java:147)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$3.execute(NativeAnimatedModule.java:332)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$UIBlockOperation.execute(UIViewOperationQueue.java:579)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.569  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: Unhandled SoftException
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: com.facebook.react.bridge.ReactNoCrashSoftException: startAnimatingNode: Animated node [3922] does not exist
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedNodesManager.startAnimatingNode(NativeAnimatedNodesManager.java:274)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$14.execute(NativeAnimatedModule.java:704)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$ConcurrentOperationQueue.executeBatch(NativeAnimatedModule.java:147)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$3.execute(NativeAnimatedModule.java:332)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$UIBlockOperation.execute(UIViewOperationQueue.java:579)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.570  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: Unhandled SoftException
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: com.facebook.react.bridge.ReactNoCrashSoftException: connectAnimatedNodes: Animated node with tag (parent) [3935] does not exist
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedNodesManager.connectAnimatedNodes(NativeAnimatedNodesManager.java:364)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$16.execute(NativeAnimatedModule.java:751)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$ConcurrentOperationQueue.executeBatch(NativeAnimatedModule.java:147)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$3.execute(NativeAnimatedModule.java:332)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$UIBlockOperation.execute(UIViewOperationQueue.java:579)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.573  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: Unhandled SoftException
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: com.facebook.react.bridge.ReactNoCrashSoftException: connectAnimatedNodes: Animated node with tag (child) [3935] does not exist
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedNodesManager.connectAnimatedNodes(NativeAnimatedNodesManager.java:375)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$16.execute(NativeAnimatedModule.java:751)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$ConcurrentOperationQueue.executeBatch(NativeAnimatedModule.java:147)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.animated.NativeAnimatedModule$3.execute(NativeAnimatedModule.java:332)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$UIBlockOperation.execute(UIViewOperationQueue.java:579)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.574  7028  7028 E unknown:NativeAnimatedNodesManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.590  7028  7028 D AndroidRuntime: Shutting down VM
07-06 11:03:56.591  7028  7028 E AndroidRuntime: FATAL EXCEPTION: main
07-06 11:03:56.591  7028  7028 E AndroidRuntime: Process: io.evix.reactnativetvexample, PID: 7028
07-06 11:03:56.591  7028  7028 E AndroidRuntime: java.lang.RuntimeException: java.lang.IllegalArgumentException: Mapped property node does not exists
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:230)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1035)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.view.Choreographer.doCallbacks(Choreographer.java:845)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.view.Choreographer.doFrame(Choreographer.java:775)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:938)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7839)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Mapped property node does not exists
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.animated.PropsAnimatedNode.updateView(PropsAnimatedNode.java:100)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes(NativeAnimatedNodesManager.java:743)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedNodesManager.runUpdates(NativeAnimatedNodesManager.java:650)
07-06 11:03:56.591  7028  7028 E AndroidRuntime: 	at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:214)

@yrichard
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it! Thanks for doing this. I'm doing a slow roll out for various reasons, and don't have a user base large enough to get that specific combination of Android 12 + new app with the patch. Looks like it's a no go then. Sigh...

@wesvh
Copy link

@wesvh wesvh commented on 7639c26 Jul 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you think it is reliable to apply the patch temporarily? Or it makes the apk more unstable, I am desperate to apply a solution because my group of people who use the app have constant errors of this style on a specific device
A032M
@wouterds

@wouterds
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wesvh It doesn't improve much from my preliminary testing.

@aditya-keri-betterhalf

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wouterds
I've been following all your comments and understand that you were able to correctly patch the native files in react-native to avoid this crash.
My question is not specific to this crash but I have another crash I want to resolve in my app. It's been affecting a lot of users of late.
I would like to know how to correctly patch a java file in react native and get it to work ? I've tried patching it in node_modules and the patch obviously doesn't work, because we need to build from source.
I've followed the official documentation for building from source but I didn't really get it to work.
Looking forward to your reply.

@wouterds
Copy link
Owner Author

@wouterds wouterds commented on 7639c26 Jul 31, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wouterds I've been following all your comments and understand that you were able to correctly patch the native files in react-native to avoid this crash. My question is not specific to this crash but I have another crash I want to resolve in my app. It's been affecting a lot of users of late. I would like to know how to correctly patch a java file in react native and get it to work ? I've tried patching it in node_modules and the patch obviously doesn't work, because we need to build from source. I've followed the official documentation for building from source but I didn't really get it to work. Looking forward to your reply.

You need to:

  1. to fork react-native-tvos and clone that locally
  2. then patch the java file(s)
  3. compile the source with following command ./gradlew :ReactAndroid:installArchives
  4. copy the generated android folder in your local node_modules/react-native-tvos *

* OR publish the package somewhere and use that registry

Please sign in to comment.