add_menu_page include a php page from theme directory

The error tells you what the problem is…

PHP Warning: call_user_func_array() expects parameter 1 to be a
valid callback, function

Your “callback” isn’t a function. It is a file. It doesn’t work that way. You will need a helper function to include a file. Something like:

add_menu_page(
  'Private Messages', 
  'Private Messages', 
  'manage_options',
  'message_admin', 
  'include_message_admin',
  get_bloginfo('stylesheet_directory').'/style/images/message.png'
);

function include_message_admin() {
  // include('/path/to/message-admin.php');
  // something like
  include(get_template_directory().'/message-admin.php');
  // or 
  include(get_stylesheet_directory().'/message-admin.php');
}

tech