You may have empty characters at the beginning before the <?php
block.
You may also try to var_dump($result->get_error_data())
this error message — this would be the dirty way.
File: wp-admin/plugins.php
42: $result = activate_plugin($plugin, self_admin_url('plugins.php?error=true&plugin=' . $plugin), is_network_admin() );
43: if ( is_wp_error( $result ) ) {
44: if ( 'unexpected_output' == $result->get_error_code() ) {
45: $redirect = self_admin_url('plugins.php?error=true&charsout=" . strlen($result->get_error_data()) . "&plugin=' . $plugin . "&plugin_status=$status&paged=$page&s=$s");
46: wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect));
47: exit;
48: } else {
49: wp_die($result);
50: }
51: }