Error in native method Picture.nativeCreateFromStream()

by nickthecook » Tue, 06 Jan 2009 01:20:17 GMT


Sponsored Links
 ello 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 3000016-
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 000012a8
I/DEBUG ( 29): r0 00000000 r1 00000006 r2 00000000 r3 00000080
I/DEBUG ( 29): r4 00002eb0 r5 40008000 r6 00000000 r7 00000025
I/DEBUG ( 29): r8 beb0a630 r9 4104d9c8 10 4104d9b8 fp 00000000
I/DEBUG ( 29): ip ffffffff sp beb0a5c8 lr afe0ef37 pc
afe0d1fc cpsr 00000010
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



Error in native method Picture.nativeCreateFromStream()

by Mike Reed » Tue, 06 Jan 2009 01:39:37 GMT


 hat 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:

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Error in native method Picture.nativeCreateFromStream()

by nickthecook » Tue, 06 Jan 2009 11:52:56 GMT


 s 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:39pm, Mike Reed <r...@google.com> wrote:
--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Download multiple objects from the same server

How can I utilize Connection: Keep-Alive option, re-use connection and
download multiple objects from the same server? HTTP connection
consists of opening a socket, sending request and then readign
response. For Keep-Alive option open the socket connection needs to be
done only once. However I could not find in Android Java classes how
this can be accomplished. URL.openConnection returns new instance of
HttpURLConnection implementation for every request so
HttpURLConnection cannot be cashed for reusing on multiple requests to
the same server, URL object is also new for each request and also
cannot be reused.

-- 

2. TextView cuts off part of an initial capital "J"

Paste your xml file.

- Anurag Singh




> 

3. Android porting for AM3517

4. Human interface guidelines. Equivalent to iPhone sectioned table

5. Looking for advice into best way to store images within app

6. Toast on Top of ListView?

7. save (complex?) application state to bundle