- 我正在使用Parse
api将上传并保存视频文件到应用程序的Parse.com
服务器。
- 我目前使用Parse Documentation中的以下代码将视频文件上传到Parse Server:
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%,这是来自System.out.println
方法的done()
语句的结果将Integer
作为参数,然后立即 进入方法done()
并使用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
提供了有关IPhone
整合的详细教程和信息,但我没有找到任何教程解释{ {1}}。
- 任何人都可以给我一个教程解释<{1}} Api的集成到上传的应用程序多媒体文件到解析服务器。
答案 0 :(得分:0)
您收到错误是因为您尝试从null变量调用方法。如果saveInBackground()成功,则done(ParseException e)中的ParseException将为null。通过检查ParseException是否为null来修复它:
public void done(ParseException e) {
if(e==null) {
// SUCCESS!!!
} else {
e.printStackTrace();
}
}
这适用于名称以* inBackground
结尾的所有ParseObject方法