5

-我正在使用Parseapi将视频文件上传并保存Parse.com服务器以供应用程序使用。

- 我目前正在使用 Parse Documentation 中的以下代码将视频文件上传到 Parse 服务器:

    File f = new File("/sdcard/video-2013-02-21-13-03-24.mp4");

    byte[] videoUp = IOUtils.toByteArray( new FileInputStream(f));


    ParseFile file = new ParseFile("testVideo1", videoUp);




    file.saveInBackground(new SaveCallback() {


        public void done(ParseException e) {

      e.printStackTrace();

     }

     }, new ProgressCallback() {

     public void done(Integer percentDone) {

     System.out.println("Progress :" + percentDone);
      }
     });

-首先它的打印进度为 100 %,这是从带有 as 参数的方法中声明的结果,然后System.out.println立即进入带有as参数的方法,打印以下堆栈跟踪。done()Integerdone()ParseException

FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.uploadfileusingparse.MainActivity$1$1.done(MainActivity.java:63)
at com.parse.SaveCallback.internalDone(SaveCallback.java:42)
at com.parse.SaveCallback.internalDone(SaveCallback.java:29)
at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:50)
at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:16)
at android.os.AsyncTask.finish(AsyncTask.java:417)
at android.os.AsyncTask.access$300(AsyncTask.java:127)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

- 提供了有关集成Parse的详细教程和信息,但我没有在.IPhoneAndroid

-谁能给我一个教程,解释将Api集成到应用程序中以将多媒体文件上传到 Parse 服务器。Parse

4

1 回答 1

0

您收到错误是因为您尝试从空变量调用方法。如果 saveInBackground() 成功,则 done(ParseException e) 中的 ParseException 将为空。通过检查 ParseException 是否为空来修复它:

  public void done(ParseException e) {
      if(e==null) {
          // SUCCESS!!!
      } else {
          e.printStackTrace();
      }
  }

这适用于名称以 *inBackground 结尾的所有 ParseObject 方法

于 2013-12-11T06:21:44.960 回答