Start a new topic

Problem with download image

I want to download file from Data & Storage >> Files. I use method "download" of AsyncFile, but it needs MetaData. Therefore iI try to download MetaData using method "downloadMetaData" which needs ID of file. After using this method, App crasches.

How correctly to download the file? Thaks.

======================================

I use this code for download metadata to download image.

client.file().downloadMetaData("518fb003a6b1878c340040c8", new KinveyClientCallback()

{

@Override

public void onSuccess(Void arg0) { }

@Override

public void onFailure(Throwable arg0) { }



});



Logs:

11-15 00:48:33.164: D/HttpTransport(29566): -------------- REQUEST --------------

11-15 00:48:33.164: D/HttpTransport(29566): GET https://baas.kinvey.com/user/kid_PPEyxrwPzM/527414cca4f580a52c00132f

11-15 00:48:33.164: D/HttpTransport(29566): Accept-Encoding: gzip

11-15 00:48:33.164: D/HttpTransport(29566): Authorization:

11-15 00:48:33.164: D/HttpTransport(29566): User-Agent: android-kinvey-http/2.6.9

11-15 00:48:33.164: D/HttpTransport(29566): x-kinvey-api-version: 3

11-15 00:48:33.164: D/HttpTransport(29566): x-kinvey-device-information: samsung/GT-I9000 Android 4.2.2 7ad993a9-f680-3af9-8e20-73ed9d073e1f

11-15 00:48:33.164: D/HttpTransport(29566): curl -v --compressed -H 'Accept-Encoding: gzip' -H 'Authorization: ' -H 'User-Agent: android-kinvey-http/2.6.9' -H 'x-kinvey-api-version: 3' -H 'x-kinvey-device-information: samsung/GT-I9000 Android 4.2.2 7ad993a9-f680-3af9-8e20-73ed9d073e1f' -- 'https://baas.kinvey.com/user/kid_PPEyxrwPzM/527414cca4f580a52c00132f'

11-15 00:48:33.210: D/libEGL(29566): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so

11-15 00:48:33.214: D/libEGL(29566): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so

11-15 00:48:33.218: D/libEGL(29566): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so

11-15 00:48:33.257: D/OpenGLRenderer(29566): Enabling debug mode 0

11-15 00:48:33.925: D/HttpTransport(29566): -------------- RESPONSE --------------

11-15 00:48:33.925: D/HttpTransport(29566): 200 OK

11-15 00:48:33.925: D/HttpTransport(29566): Connection: keep-alive

11-15 00:48:33.925: D/HttpTransport(29566): Content-Length: 205

11-15 00:48:33.925: D/HttpTransport(29566): Content-Type: application/json; charset=utf-8

11-15 00:48:33.925: D/HttpTransport(29566): Date: Thu, 14 Nov 2013 20:48:41 GMT

11-15 00:48:33.925: D/HttpTransport(29566): Server: nginx

11-15 00:48:33.925: D/HttpTransport(29566): X-Android-Received-Millis: 1384462113902

11-15 00:48:33.925: D/HttpTransport(29566): X-Android-Sent-Millis: 1384462113728

11-15 00:48:33.925: D/HttpTransport(29566): X-Kinvey-API-Version: 3

11-15 00:48:33.925: D/HttpTransport(29566): X-Kinvey-Request-Id: a3978756423e44c8b8ecb93b8e2c0a8c

11-15 00:48:33.925: D/HttpTransport(29566): X-Powered-By: Express

11-15 00:48:33.945: D/HttpTransport(29566): Total: 205 bytes

11-15 00:48:33.949: D/HttpTransport(29566): {"username":"e55db624-cf17-444d-bbf8-754ba0f6c06a","kmd":{"lmt":"2013-11-01T20:53:32.111Z","ect":"2013-11-01T20:53:32.111Z"},"id":"527414cca4f580a52c00132f","acl":{"creator":"527414cca4f580a52c00132f"}}

11-15 00:48:33.972: D/HttpTransport(29566): -------------- REQUEST --------------

11-15 00:48:33.972: D/HttpTransport(29566): GET https://baas.kinvey.com/blob/kidPPEyxrwPzM/518fb003a6b1878c340040c8

11-15 00:48:33.972: D/HttpTransport(29566): Accept-Encoding: gzip

11-15 00:48:33.972: D/HttpTransport(29566): Authorization:

11-15 00:48:33.972: D/HttpTransport(29566): User-Agent: android-kinvey-http/2.6.9

11-15 00:48:33.972: D/HttpTransport(29566): x-kinvey-api-version: 3

11-15 00:48:33.972: D/HttpTransport(29566): x-kinvey-device-information: samsung/GT-I9000 Android 4.2.2 7ad993a9-f680-3af9-8e20-73ed9d073e1f

11-15 00:48:33.972: D/HttpTransport(29566): curl -v --compressed -H 'Accept-Encoding: gzip' -H 'Authorization: ' -H 'User-Agent: android-kinvey-http/2.6.9' -H 'x-kinvey-api-version: 3' -H 'x-kinvey-device-information: samsung/GT-I9000 Android 4.2.2 7ad993a9-f680-3af9-8e20-73ed9d073e1f' -- 'https://baas.kinvey.com/blob/kid_PPEyxrwPzM/518fb003a6b1878c340040c8'

11-15 00:48:34.222: D/HttpTransport(29566): -------------- RESPONSE --------------

11-15 00:48:34.222: D/HttpTransport(29566): 200 OK

11-15 00:48:34.222: D/HttpTransport(29566): Connection: keep-alive

11-15 00:48:34.222: D/HttpTransport(29566): Content-Length: 713

11-15 00:48:34.222: D/HttpTransport(29566): Content-Type: application/json; charset=utf-8

11-15 00:48:34.222: D/HttpTransport(29566): Date: Thu, 14 Nov 2013 20:48:41 GMT

11-15 00:48:34.222: D/HttpTransport(29566): Server: nginx

11-15 00:48:34.222: D/HttpTransport(29566): X-Android-Received-Millis: 1384462114198

11-15 00:48:34.222: D/HttpTransport(29566): X-Android-Sent-Millis: 1384462113981

11-15 00:48:34.222: D/HttpTransport(29566): X-Kinvey-API-Version: 3

11-15 00:48:34.222: D/HttpTransport(29566): X-Kinvey-Request-Id: 676a83564dc840e8b1123468fb653b82

11-15 00:48:34.222: D/HttpTransport(29566): X-Powered-By: Express

11-15 00:48:34.246: D/HttpTransport(29566): Total: 713 bytes

11-15 00:48:34.246: D/HttpTransport(29566): {"id":"518fb003a6b1878c340040c8","objectname":"517f77b4ab8b044352004be9","acl":{"creator":"kid_PPEyxrwPzM","gr":true},"kmd":{"lmt":"2013-05-12T15:06:43.777Z"},"filename":"517f77b4ab8b044352004be9","mimeType":"application/octet-stream","size":"333555","downloadURL":"http://storage.googleapis.com/kinveyproduction_ff340a6c296b42eb8bb7419e34625f02/518fb003a6b1878c340040c8/517f77b4ab8b044352004be9?GoogleAccessId=558440376631@developer.gserviceaccount.com&Expires=1384465721&Signature=J2EQ%2BlkugMR9UBSl%2FlIiXH7DUVKMs7Pk6GY3a4clALcqQvBM7zeH%2FupedjA72bx3sZIn9vpW57DRtL8YDzqh3q8ot0ATZfrd3wgweHrZEBO%2BBvZYRszaofFHtDTdLrJKkdIJDZ9JTNAWErh65iW3PJ4UDw5vcw6Be1fLnxTMozs%3D","_expiresAt":"2013-11-14T21:48:41.747Z"}

11-15 00:48:34.246: D/AndroidRuntime(29566): Shutting down VM

11-15 00:48:34.250: W/dalvikvm(29566): threadid=1: thread exiting with uncaught exception (group=0x41484930)

11-15 00:48:34.250: E/AndroidRuntime(29566): FATAL EXCEPTION: main

11-15 00:48:34.250: E/AndroidRuntime(29566): java.lang.ClassCastException: com.kinvey.java.model.FileMetaData cannot be cast to java.lang.Void

11-15 00:48:34.250: E/AndroidRuntime(29566): at com.ninth.may.NinthActivity$1.onSuccess(NinthActivity.java:1)

11-15 00:48:34.250: E/AndroidRuntime(29566): at com.kinvey.android.AsyncClientRequest.onPostExecute(AsyncClientRequest.java:83)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.os.AsyncTask.finish(AsyncTask.java:631)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.os.AsyncTask.access$600(AsyncTask.java:177)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.os.Handler.dispatchMessage(Handler.java:99)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.os.Looper.loop(Looper.java:137)

11-15 00:48:34.250: E/AndroidRuntime(29566): at android.app.ActivityThread.main(ActivityThread.java:5227)

11-15 00:48:34.250: E/AndroidRuntime(29566): at java.lang.reflect.Method.invokeNative(Native Method)

11-15 00:48:34.250: E/AndroidRuntime(29566): at java.lang.reflect.Method.invoke(Method.java:511)

11-15 00:48:34.250: E/AndroidRuntime(29566): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)

11-15 00:48:34.250: E/AndroidRuntime(29566): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)

11-15 00:48:34.250: E/AndroidRuntime(29566): at dalvik.system.NativeStart.main(Native Method)

11-15 00:48:36.664: I/Process(29566): Sending signal. PID: 29566 SIG: 9
1 Comment

Hey,



I just did some looking into this, and it looks like this is a bug-- thanks for reporting it, and I will get a new version of the android library out soon with the fix.



In the meantime, since you just want to download a file, you can create a `FileMetaData` object inline and send it over to the download method.



For example:



FileMetaData myMetaData = new FileMetaData("518fb003a6b1878c340040c8");

client.file().download(myMetaData, myOutputStream, new DownloaderProgressListener() { ... });
Login or Signup to post a comment