[android-developers] Re: Error in native method Picture.nativeCreateFromStream()

2009-01-05 Thread Mike Reed

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()

2009-01-05 Thread nickthecook

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