diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java index 7b2fe5ad65fc..f52aaf8787de 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java @@ -15,6 +15,8 @@ import com.facebook.react.bridge.BaseJavaModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; +import com.facebook.react.bridge.ReactNoCrashSoftException; +import com.facebook.react.bridge.ReactSoftExceptionLogger; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.common.annotations.UnstableReactNativeAPI; @@ -113,7 +115,15 @@ public void updateProperties(@NonNull T viewToUpdate, ReactStylesDiffMap props) * view manager should be set via this delegate */ protected ViewManagerDelegate getDelegate() { - return new ViewManagerPropertyUpdater.GenericViewManagerDelegate(this); + if (this instanceof ViewManagerWithGeneratedInterface) { + ReactSoftExceptionLogger.logSoftException( + NAME, + new ReactNoCrashSoftException( + "ViewManager using codegen must override getDelegate method (name: " + + getName() + + ").")); + } + return new ViewManagerPropertyUpdater.GenericViewManagerDelegate<>(this); } private ViewManagerDelegate getOrCreateViewManagerDelegate() {