Drupal 7: How to insert site's Main Menu and also use my custom style on it?
In Bartik, menu is added like that:

    &lt;?php if ($main_menu): ?&gt;
      &lt;div id="main-menu" class="navigation"&gt;
        &lt;?php print theme('links__system_main_menu', array(
          'links' =&gt; $main_menu,
          'attributes' =&gt; array(
            'id' =&gt; 'main-menu-links',
            'class' =&gt; array('links', 'clearfix'),
          ),
          'heading' =&gt; array(
            'text' =&gt; t('Main menu'),
            'level' =&gt; 'h2',
            'class' =&gt; array('element-invisible'),
          ),
        )); ?&gt;
      &lt;/div&gt; &lt;!-- /#main-menu --&gt;
    &lt;?php endif; ?&gt;


Except the fact that $main_menu was not provided in page.tpl.php nor in template.php, apparently created by menu module, it looks like your code, just more elaborate. This indicates that either in menu_navigation_links or in theme you passed an argument that happens not to work. Except that it should be all right. Use dpr() or var_dump() to see which one fails.

If you need better control over your menus, I suggest using Menu block module to put them. This module allows you to treat menus or their parts as a blocks, so in your template all you need to do is to output proper region.

To get classes on menu items, you can simply use Menu attributes module:


  The module currently allows you to set the following attributes for each menu item:
  
  
  Id
  Name
  Target
  Rel
  Class
  Style
  Accesskey