[android-developers] Re: Error in native method Picture.nativeCreateFromStream()
That method should not crash (I will fix that), but it is only intended to re-create a picture that was previously written to a stream. It does not know how to decode or interpreted images or other data formats. Use BitmapFactory for that. On Sun, Jan 4, 2009 at 11:29 AM, nickthecook nickthec...@gmail.com wrote: Hello all, I'm having some trouble creating a Picture from an InputStream. I am trying to do this: ByteArrayInputStream bis = new ByteArrayInputStream(bytes); Picture pic = Picture.createFromStream(bis); The problem also occurs when I try to use an InputStream returned by ContentResolver.openInputStream(Uri): InputStream is = getContentResolver.openInputStream(mUri); Picture pic = Picture.createFromStream(is); Picture.createFromStream(InputStream) invokes the native method Picture.nativeCreateFromStream(InputStream, byte[]), and this is where the trail goes cold for me: public static Picture createFromStream(InputStream stream) { return new Picture( nativeCreateFromStream(stream, new byte [WORKING_STREAM_STORAGE])); } I have been loading images from this Uri (content://media/external/ images/media/152) successfully for a while. I open an InputStream, read all the bytes, close the input stream, and there is no problem. However, when I try to use either the InputStream returned by ContentResolver.openInputStream(Uri), or I read all the bytes out of that and wrap them in a ByteArrayInputStream, Picture.createFromStream (InputStream) fails with the stack trace below. Has anyone successfully used Picture.createFromStream(InputStream)? === Stack Trace I/dalvikvm-heap( 4776): Grow heap (frag case) to 5.940MB for 316- byte allocation D/dalvikvm( 4776): GC freed 371 objects / 20736 bytes in 89ms I/Image ( 4776): Read 345682 bytes for content://media/external/images/media/152. I/DEBUG ( 29): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG ( 29): Build fingerprint: 'android-devphone1/ dream_devphone/dream/trout:1.0/UNLOCKED/116222:userdebug/test-keys' I/DEBUG ( 29): pid: 4776, tid: 4776 org.hopto.group18.postbot I/DEBUG ( 29): signal 6 (SIGABRT), fault addr 12a8 I/DEBUG ( 29): r0 r1 0006 r2 r3 0080 I/DEBUG ( 29): r4 2eb0 r5 40008000 r6 r7 0025 I/DEBUG ( 29): r8 beb0a630 r9 4104d9c8 10 4104d9b8 fp I/DEBUG ( 29): ip sp beb0a5c8 lr afe0ef37 pc afe0d1fc cpsr 0010 I/DEBUG ( 29): #00 pc afe0d1fc /system/lib/libc.so I/DEBUG ( 29): #01 pc afe0ef34 /system/lib/libc.so I/DEBUG ( 29): #02 pc ace08540 /system/lib/libcorecg.so I/DEBUG ( 29): #03 pc ac075cec /system/lib/libsgl.so I/DEBUG ( 29): #04 pc ad3413da /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #05 pc ad00d9f4 /system/lib/libdvm.so I/DEBUG ( 29): #06 pc ad04120e /system/lib/libdvm.so I/DEBUG ( 29): #07 pc ad012748 /system/lib/libdvm.so I/DEBUG ( 29): #08 pc ad02a92c /system/lib/libdvm.so I/DEBUG ( 29): #09 pc ad0169d0 /system/lib/libdvm.so I/DEBUG ( 29): #10 pc ad052096 /system/lib/libdvm.so I/DEBUG ( 29): #11 pc ad03ccbc /system/lib/libdvm.so I/DEBUG ( 29): #12 pc ad012748 /system/lib/libdvm.so I/DEBUG ( 29): #13 pc ad02a92c /system/lib/libdvm.so I/DEBUG ( 29): #14 pc ad0169d0 /system/lib/libdvm.so I/DEBUG ( 29): #15 pc ad051f10 /system/lib/libdvm.so I/DEBUG ( 29): #16 pc ad03f87a /system/lib/libdvm.so I/DEBUG ( 29): #17 pc ad3282b4 /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #18 pc ad328d40 /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #19 pc 8c12 /system/bin/app_process I/DEBUG ( 29): #20 pc afe1dbd2 /system/lib/libc.so I/DEBUG ( 29): #21 pc afe0b010 /system/lib/libc.so I/DEBUG ( 29): #22 pc bd70 /system/bin/linker I/DEBUG ( 29): stack: I/DEBUG ( 29): beb0a588 beb0a630 [stack] I/DEBUG ( 29): beb0a58c afe35f3c I/DEBUG ( 29): beb0a590 0084 I/DEBUG ( 29): beb0a594 0001 I/DEBUG ( 29): beb0a598 afe35f3c I/DEBUG ( 29): beb0a59c 000c I/DEBUG ( 29): beb0a5a0 afe35f3c I/DEBUG ( 29): beb0a5a4 afe12dbd /system/lib/libc.so I/DEBUG ( 29): beb0a5a8 afe35f3c I/DEBUG ( 29): beb0a5ac afe35f90 I/DEBUG ( 29): beb0a5b0 I/DEBUG ( 29): beb0a5b4 afe1238d /system/lib/libc.so I/DEBUG ( 29): beb0a5b8 ace0acc0 /system/lib/libcorecg.so I/DEBUG ( 29): beb0a5bc afe11539 /system/lib/libc.so I/DEBUG ( 29): beb0a5c0 df002777 I/DEBUG ( 29): beb0a5c4
[android-developers] Re: Error in native method Picture.nativeCreateFromStream()
As you say, it should not crash quite like that, but I see that I was using it incorrectly now. BitmapFactory does the job. Thank you! On Jan 5, 12:39 pm, Mike Reed r...@google.com wrote: That method should not crash (I will fix that), but it is only intended to re-create a picture that was previously written to a stream. It does not know how to decode or interpreted images or other data formats. Use BitmapFactory for that. On Sun, Jan 4, 2009 at 11:29 AM, nickthecook nickthec...@gmail.com wrote: Hello all, I'm having some trouble creating a Picture from an InputStream. I am trying to do this: ByteArrayInputStream bis = new ByteArrayInputStream(bytes); Picture pic = Picture.createFromStream(bis); The problem also occurs when I try to use an InputStream returned by ContentResolver.openInputStream(Uri): InputStream is = getContentResolver.openInputStream(mUri); Picture pic = Picture.createFromStream(is); Picture.createFromStream(InputStream) invokes the native method Picture.nativeCreateFromStream(InputStream, byte[]), and this is where the trail goes cold for me: public static Picture createFromStream(InputStream stream) { return new Picture( nativeCreateFromStream(stream, new byte [WORKING_STREAM_STORAGE])); } I have been loading images from this Uri (content://media/external/ images/media/152) successfully for a while. I open an InputStream, read all the bytes, close the input stream, and there is no problem. However, when I try to use either the InputStream returned by ContentResolver.openInputStream(Uri), or I read all the bytes out of that and wrap them in a ByteArrayInputStream, Picture.createFromStream (InputStream) fails with the stack trace below. Has anyone successfully used Picture.createFromStream(InputStream)? === Stack Trace I/dalvikvm-heap( 4776): Grow heap (frag case) to 5.940MB for 316- byte allocation D/dalvikvm( 4776): GC freed 371 objects / 20736 bytes in 89ms I/Image ( 4776): Read 345682 bytes for content://media/external/images/media/152. I/DEBUG ( 29): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG ( 29): Build fingerprint: 'android-devphone1/ dream_devphone/dream/trout:1.0/UNLOCKED/116222:userdebug/test-keys' I/DEBUG ( 29): pid: 4776, tid: 4776 org.hopto.group18.postbot I/DEBUG ( 29): signal 6 (SIGABRT), fault addr 12a8 I/DEBUG ( 29): r0 r1 0006 r2 r3 0080 I/DEBUG ( 29): r4 2eb0 r5 40008000 r6 r7 0025 I/DEBUG ( 29): r8 beb0a630 r9 4104d9c8 10 4104d9b8 fp I/DEBUG ( 29): ip sp beb0a5c8 lr afe0ef37 pc afe0d1fc cpsr 0010 I/DEBUG ( 29): #00 pc afe0d1fc /system/lib/libc.so I/DEBUG ( 29): #01 pc afe0ef34 /system/lib/libc.so I/DEBUG ( 29): #02 pc ace08540 /system/lib/libcorecg.so I/DEBUG ( 29): #03 pc ac075cec /system/lib/libsgl.so I/DEBUG ( 29): #04 pc ad3413da /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #05 pc ad00d9f4 /system/lib/libdvm.so I/DEBUG ( 29): #06 pc ad04120e /system/lib/libdvm.so I/DEBUG ( 29): #07 pc ad012748 /system/lib/libdvm.so I/DEBUG ( 29): #08 pc ad02a92c /system/lib/libdvm.so I/DEBUG ( 29): #09 pc ad0169d0 /system/lib/libdvm.so I/DEBUG ( 29): #10 pc ad052096 /system/lib/libdvm.so I/DEBUG ( 29): #11 pc ad03ccbc /system/lib/libdvm.so I/DEBUG ( 29): #12 pc ad012748 /system/lib/libdvm.so I/DEBUG ( 29): #13 pc ad02a92c /system/lib/libdvm.so I/DEBUG ( 29): #14 pc ad0169d0 /system/lib/libdvm.so I/DEBUG ( 29): #15 pc ad051f10 /system/lib/libdvm.so I/DEBUG ( 29): #16 pc ad03f87a /system/lib/libdvm.so I/DEBUG ( 29): #17 pc ad3282b4 /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #18 pc ad328d40 /system/lib/ libandroid_runtime.so I/DEBUG ( 29): #19 pc 8c12 /system/bin/app_process I/DEBUG ( 29): #20 pc afe1dbd2 /system/lib/libc.so I/DEBUG ( 29): #21 pc afe0b010 /system/lib/libc.so I/DEBUG ( 29): #22 pc bd70 /system/bin/linker I/DEBUG ( 29): stack: I/DEBUG ( 29): beb0a588 beb0a630 [stack] I/DEBUG ( 29): beb0a58c afe35f3c I/DEBUG ( 29): beb0a590 0084 I/DEBUG ( 29): beb0a594 0001 I/DEBUG ( 29): beb0a598 afe35f3c I/DEBUG ( 29): beb0a59c 000c I/DEBUG ( 29): beb0a5a0 afe35f3c I/DEBUG ( 29): beb0a5a4 afe12dbd /system/lib/libc.so I/DEBUG ( 29): beb0a5a8 afe35f3c I/DEBUG ( 29): beb0a5ac afe35f90 I/DEBUG ( 29): beb0a5b0