Ok i got it. The solution is to use an earlier hook for checking plugins. But then the function get_plugins() is not available so i have to include it for using. The working code:
class acf_multisite_sync {
function __construct() {
add_action('plugins_loaded', array($this, 'acf_sync_init'));
}
function acf_sync_init() {
if (!function_exists('get_plugins')) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$plugins = get_plugins();
if (isset($plugins['advanced-custom-fields-pro/acf.php'])) {
if ($plugins['advanced-custom-fields-pro/acf.php']['Version'] >= 5
&& is_plugin_active('advanced-custom-fields-pro/acf.php')
&& is_main_site()) {
add_action('admin_menu', array($this, 'acf_sync_submenu'), 100);
}
}
}
function acf_sync_submenu() {
add_submenu_page(
'edit.php?post_type=acf-field-group',
'Multisite',
'Multisite',
'manage_options',
'acf-sync',
array($this, 'acf_sync_callback')
);
}
function acf_sync_callback() {
echo 'My Submenu Content';
}
}
new acf_multisite_sync();