title: JSON Error when calling phonegap plugin.
body: <p>I used a screenshot plugin for ios when I developed an iphone/ipad app. I am now creating an android version of the app and am trying to implement the android version of the plugin. </p>
  
  <p>My java part fo the plugin looks like this:</p>
  
  <pre><code>package org.apache.cordova;
  
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.IOException;
  
  import org.apache.cordova.api.Plugin;
  import org.apache.cordova.api.PluginResult;
  import org.json.JSONArray;
  
  import android.graphics.Bitmap;
  import android.os.Environment;
  import android.view.View;
  
  public class Screenshot extends Plugin {
  private PluginResult result = null;
  
  @Override
  public PluginResult execute(String action, JSONArray args, String callbackId) {
      // starting on ICS, some WebView methods
      // can only be called on UI threads
      super.cordova.getActivity().runOnUiThread(new Runnable() {
          public void run() {
              View view = webView.getRootView();
  
              view.setDrawingCacheEnabled(true);
              Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
              view.setDrawingCacheEnabled(false);
  
              try {
                  File folder = new File(Environment.getExternalStorageDirectory(), "Pictures");
                  if (!folder.exists()) {
                      folder.mkdirs();
                  }
  
                  File f = new File(folder, "screenshot_" + System.currentTimeMillis() + ".png");
  
                  FileOutputStream fos = new FileOutputStream(f);
                  bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
                  result = new PluginResult(PluginResult.Status.OK);
  
              } catch (IOException e) {
                  result = new PluginResult(PluginResult.Status.IO_EXCEPTION, e.getMessage());
              }
          }
      });
  
      // waiting ui thread to finish
      while (this.result == null) {
          try {
              Thread.sleep(100);
          } catch (InterruptedException e) {
              // ignoring exception, since we have to wait
              // ui thread to finish
          }
      }
  
      return this.result;
  }
  
  }
  </code></pre>
  
  <p>My Screenshot.js looks like this:</p>
  
  <pre><code>(function() {
  /* Get local ref to global PhoneGap/Cordova/cordova object for exec function.
      - This increases the compatibility of the plugin. */
  var cordovaRef = window.PhoneGap || window.Cordova || window.cordova; // old to new fallbacks
  
  /**
   * This class exposes the ability to take a Screenshot to JavaScript
   */
  function Screenshot() { }
  
  /**
   * Save the screenshot to the user's Photo Library
   */
  Screenshot.prototype.saveScreenshot = function() {
  cordovaRef.exec(null, null, "Screenshot", "saveScreenshot", []);
  };
  
      if (!window.plugins) {
          window.plugins = {};
      }
      if (!window.plugins.screenshot) {
          window.plugins.screenshot = new Screenshot();
      }
  
   })(); /* End of Temporary Scope. */
  </code></pre>
  
  <p>Now I try to call my screenshot.js function by using this code:</p>
  
  <pre><code>function takeScreenShot() {
    cordovaRef.exec("Screenshot.saveScreenshot");
  }   
  </code></pre>
  
  <p>However all I get is JSON errors, I know somewhere im asking to to convert it to JSON from a java string but i just can't figure out how to change it. Ok well I think that is what is wrong...</p>
  
  <p>My errors look like this:</p>
  
  <pre><code>ERROR: org.json.JSONException: Value undefined of type java.lang.String cannot be converted to JSONArray.
  Error: Status=8 Message=JSON error
  file:///android_asset/www/cordova-2.0.0.js: Line 938 :  Error: Status=8 Message=JSON error
  Error: Status=8 Message=JSON error at file:///android_asset_/www/cordova-2.0.0.js:938
  </code></pre>
  
  <p>Can anyone guide me where Im going wrong please?</p>