Blankj/AndroidUtilCode · warning · UnsupportedOperationException
u can't instantiate me...
Error message
u can't instantiate me...
What it means
ActivityUtils (utilcode) is a final utility class whose private constructor throws UnsupportedOperationException. It exposes only static activity helpers; instances are intentionally forbidden.
Source
Thrown at lib/utilcode/src/main/java/com/blankj/utilcode/util/ActivityUtils.java:40
import androidx.annotation.AnimRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.util.Pair;
import androidx.fragment.app.Fragment;
/**
* <pre>
* author: Blankj
* blog : http://blankj.com
* time : 2016/09/23
* desc : utils about activity
* </pre>
*/
public final class ActivityUtils {
private ActivityUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
/**
* Add callbacks of activity lifecycle.
*
* @param callbacks The callbacks.
*/
public static void addActivityLifecycleCallbacks(@Nullable final Utils.ActivityLifecycleCallbacks callbacks) {
UtilsBridge.addActivityLifecycleCallbacks(callbacks);
}
/**
* Add callbacks of activity lifecycle.
*
* @param activity The activity.
* @param callbacks The callbacks.
*/
public static void addActivityLifecycleCallbacks(@Nullable final Activity activity,View on GitHub (pinned to 7b4caf9e54)
Solutions
- Use the static API, e.g. ActivityUtils.startActivity(...), ActivityUtils.getActivityByContext(ctx); never instantiate.
- Configure reflective frameworks to skip final utility classes.
- Remove newInstance paths targeting ActivityUtils.
Example fix
// before ActivityUtils a = reflectNew(ActivityUtils.class); // throws // after ActivityUtils.startActivity(intent);
Defensive patterns
Strategy: validation
Validate before calling
// ActivityUtils is static-only; never instantiate. ActivityUtils.startActivity(intent);
Type guard
private static boolean isStaticUtility(Class<?> c) {
return Modifier.isFinal(c.getModifiers()) && hasOnlyStaticMethods(c);
} Prevention
- Use ActivityUtils via its static methods only.
- Configure reflective frameworks to skip final utility classes.
- Remove reflective newInstance calls targeting utilities.
When it happens
Trigger: Reflective instantiation or unsafe allocation of ActivityUtils rather than calling its static methods.
Common situations: Reflection/DI/serialization frameworks that build arbitrary classes; tests that reflectively scaffold utilities.
Related errors
- u can't instantiate me...
- u can't instantiate me...
- u can't instantiate me...
- u can't instantiate me...
- u can't instantiate me...
AI-assisted analysis of Blankj/AndroidUtilCode@7b4caf9e54 (2026-08-14).
Data as JSON: /api/errors/3ee616c7c7060b94.
Report an issue: GitHub.