title: requestFileSystem in Cordova 3.4 fails with "Class not found" error
body: <p>hoping anyone can figure this out, have been battling with this issue the whole day.
  I'm trying to browse through folders on the file system to select a file, but I cannot seem to connect to the file system. </p>
  
  <p>When ever I call "window.requestFileSystem", the error callback returns a "Class not found" error. Going into Cordova's "requestFileSystem" function, I notice the "Class not found" is returned during the exec() call (where I can't trace it).
  Did anyone get past this problem, or know how to fix it?
  I am aware it's listed on several forums, but the fixes suggested there don't work for me.</p>
  
  <p>As far as I can see, all the plugins are there. Installed using Cordova CLI, they appear in the plugin folder. I do wonder if the file plugin is actually loaded, not sure how I can verify that..</p>
  
  <ul>
  <li>org.apache.cordova.console</li>
  <li>org.apache.</li>
  <li>cordova.device org.apache.cordova.file</li>
  <li>org.apache.cordova.file-transfer</li>
  </ul>
  
  <p>www/index.html</p>
  
  <pre><code>&lt;body onload="onLoad();"&gt;
      &lt;script type="text/javascript"&gt;
          // Init when we're good and ready.
          function onLoad(){document.addEventListener('deviceready', init, true);}
  
          // Init :)
          function init(){
              // window.requestFileSystem is recognized, so far so good.
              window.requestFileSystem(1, 0, function(fileSystem){
                  alert('success');
              }, function(e){
                  // 'e' is an object, {code: 'Class not found'}
                  alert('Error accessing local file system');
              });
          }
      &lt;/script&gt;
      &lt;div class="app"&gt;
          &lt;h1&gt;Apache Cordova&lt;/h1&gt;
          ...
      &lt;/div&gt;
  
      &lt;script type="text/javascript" src="cordova.js"&gt;&lt;/script&gt;
  &lt;/body&gt;
  </code></pre>
  
  <p>config.xml</p>
  
  <pre><code>&lt;?xml version='1.0' encoding='utf-8'?&gt;
  &lt;widget id="com.fwd.cwptakeonsheetsv1" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"&gt;
      &lt;name&gt;CWPTakeOnSheetsV1&lt;/name&gt;
      &lt;description&gt;
          A sample Apache Cordova application that responds to the deviceready event.
      &lt;/description&gt;
      &lt;author email="dev@cordova.apache.org" href="http://cordova.io"&gt;
          Apache Cordova Team
      &lt;/author&gt;
      &lt;content src="index.html" /&gt;
      &lt;access origin="*" /&gt;
  
  
  
      &lt;feature name="App"&gt;
          &lt;param name="android-package" value="org.apache.cordova.App" /&gt;
      &lt;/feature&gt;
      &lt;feature name="Device"&gt;
          &lt;param name="android-package" value="org.apache.cordova.device.Device" /&gt;
      &lt;/feature&gt;
      &lt;feature name="File"&gt;
          &lt;param name="android-package" value="org.apache.cordova.file" /&gt;
          &lt;param name="android-package" value="org.apache.cordova.file.FileUtils" /&gt;
          &lt;param name="onload" value="true" /&gt;
          &lt;param name="android-package" value="org.apache.cordova.FileUtils" /&gt;
      &lt;/feature&gt;
      &lt;feature name="FileTransfer"&gt;
          &lt;param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /&gt;
      &lt;/feature&gt;
  &lt;/widget&gt;
  </code></pre>
  
  <p>Cordova's requestFileSystem.js</p>
  
  <pre><code>/**
   * Request a file system in which to store application data.
   * @param type  local file system type
   * @param size  indicates how much storage space, in bytes, the application expects to need
   * @param successCallback  invoked with a FileSystem object
   * @param errorCallback  invoked if error occurs retrieving file system
   */
  var requestFileSystem = function(type, size, successCallback, errorCallback) {
      argscheck.checkArgs('nnFF', 'requestFileSystem', arguments);
      var fail = function(code) {
          errorCallback &amp;&amp; errorCallback(new FileError(code));
      };
  
      if (type &lt; 0) {
          fail(FileError.SYNTAX_ERR);
      } else {
          // if successful, return a FileSystem object
          var success = function(file_system) {
              if (file_system) {
                  if (successCallback) {
                      // grab the name and root from the file system object
                      var result = new FileSystem(file_system.name, file_system.root);
                      successCallback(result);
                  }
              }
              else {
                  // no FileSystem object returned
                  fail(FileError.NOT_FOUND_ERR);
              }
          };
          // The error happens in exec()
          exec(success, fail, "File", "requestFileSystem", [type, size]);
      }
  };
  </code></pre>