调用Parse云函数时出现错误的json响应

时间:2014-11-26 04:05:09

标签: android parse-platform android-studio cloud-code

我已经使用Parse的REST API已经有一段时间了,但是现在为了减少向Parse服务器发出的请求量我已经开始探索云了代码功能看起来相当不错 - 基于我到目前为止所阅读的内容。您在Parse服务器上定义和运行某些业务逻辑这一事实看起来就像一个非常强大的工具。

然而,我甚至无法掌握基础知识。我跟着这个Getting Started Guide但是在试图打电话给#34;你好"功能在背景上。这就是我所做的:

  1. 将jar文件导入Android Studio项目
  2. 安装Parse的powershell命令工具
  3. 在本地创建了一个云代码目录。默认情况下,它会在" main.js"
  4. 中创建hello函数
  5. 部署
  6. 通过调用此hello函数在我的Android应用上运行测试,但无法解析响应
  7. 这里是错误的堆栈跟踪:

    11-26 08:28:44.499  18299-18299/com.package.appname E/Leo_Debug﹕ Error: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
    com.parse.ParseException: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
    com.parse.ParseException: bad json response: org.json.JSONException: Value Invalid of type java.lang.String cannot be converted to JSONObject
            at com.parse.ParseRequest.connectionFailed(ParseRequest.java:415)
            at com.parse.ParseCommand.onResponse(ParseCommand.java:387)
            at com.parse.ParseCommand.onResponse(ParseCommand.java:36)
            at com.parse.ParseRequest$3.call(ParseRequest.java:295)
            at bolts.Task$2.run(Task.java:195)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)
    

    这是我正在呼叫的云代码功能......

    Parse.Cloud.define("hello", function(request, response) {
      response.success("Hello world!");
    });
    

    这就是我使用Parse SDK for Android调用函数的方式......

    String clientId = ctx.getString(R.string.parse_app_id);
    String clientKey = ctx.getString(R.string.parse_app_api_key);
    Map<String,Object> map = new HashMap<String, Object>();
    
    Parse.initialize(ctx, clientId, clientKey);
    ParseCloud.callFunctionInBackground("hello", map, new FunctionCallback<String>() {
            public void done(String o, ParseException e) {
                if(e != null) {
                    Utils.LogError(e);
                }
                else{
                    Utils.Log("ParseCloud.hello: " + o);
                }
            }
    });
    

    ctx变量是&#34; Context&#34;的一个实例。 class和Utils它只是我打开调试时使用的辅助类,用于向LogCat打印使用信息。

    我无法在他们的旧论坛网站或他们专门的Google网上论坛上找到很多信息。如果有人在任何帮助之前遇到这个问题将非常感激

1 个答案:

答案 0 :(得分:2)

使用Android Studio我正在使用compile 'com.parse:parse-android:1.+' 这直到昨天都很好。经过多次尝试,我发现将其更改为compile 'com.parse:parse-android:1.12摆脱了这个错误。所以检查您的图书馆参考资料!