Tencent/QMUI_Android · error · RuntimeException
%s did not call through to super.onEnterAnimationEnd(Animati
Error message
%s did not call through to super.onEnterAnimationEnd(Animation)
What it means
checkAndCallOnEnterAnimationEnd mirrors the start check: onEnterAnimationEnd must call the super implementation, verified via mCalled; otherwise the library throws to keep animation-end state handling consistent.
Source
Thrown at arch/src/main/java/com/qmuiteam/qmui/arch/QMUIFragment.java:1148
});
return animator;
}
return super.onCreateAnimator(transit, enter, nextAnim);
}
private void checkAndCallOnEnterAnimationStart(@Nullable Animator animation) {
mCalled = false;
onEnterAnimationStart(animation);
if (!mCalled) {
throw new RuntimeException(getClass().getSimpleName() + " did not call through to super.onEnterAnimationStart(Animation)");
}
}
private void checkAndCallOnEnterAnimationEnd(@Nullable Animator animation) {
mCalled = false;
onEnterAnimationEnd(animation);
if (!mCalled) {
throw new RuntimeException(getClass().getSimpleName() + " did not call through to super.onEnterAnimationEnd(Animation)");
}
}
/**
* onCreateView
*/
protected abstract View onCreateView();
/**
* Corresponding to {@link #onCreateView()}, it called only when new UI (not cached UI)
* is created by {@link #onCreateView()}.
* It may be used to bind views to fragment and dynamically create child views such as
* {@link QMUITopBar#addLeftBackImageButton()}
*
* @param rootView the view created by {@link #onCreateView()}
*/
protected void onViewCreated(@NonNull View rootView) {View on GitHub (pinned to 026e7d4866)
Solutions
- Call super.onEnterAnimationEnd(animation) in the override
- Place custom cleanup after the super call
- Delete the override if it only duplicated default behavior
Example fix
// before
@Override
public void onEnterAnimationEnd(Animator animation) {
cleanup();
}
// after
@Override
public void onEnterAnimationEnd(Animator animation) {
super.onEnterAnimationEnd(animation);
cleanup();
} Defensive patterns
Strategy: type-guard
Prevention
- Call super in every onEnterAnimationEnd override
- Keep custom animation cleanup after the super call
- Verify super calls survive refactors and merges
When it happens
Trigger: Overriding onEnterAnimationEnd(Animator/Animation) without calling super.onEnterAnimationEnd(animation).
Common situations: Cleaning up custom animations and forgetting super; overrides written before the contract existed; merge conflicts dropping the super call.
Related errors
- %s did not call through to super.onEnterAnimationStart(Anima
- %s did not call through to super.shouldPreventSwipeBack()
- Can not perform LatestVisitRecord, %s must be annotated by L
- Fragment(%s) not attached to Activity.
- Can not find the fragment container provider.
AI-assisted analysis of Tencent/QMUI_Android@026e7d4866 (2026-09-06).
Data as JSON: /api/errors/7fc16ac30f9cc78a.
Report an issue: GitHub.