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. Keeping service alive - What is the right way to to go for my app?

You can not rely on a service staying alive 100% of the time, because
the system reserves the right to kill the processes that host services
in order to make space for the visible activity.

JBQ

On Thu, Dec 11, 2008 at 3:21 PM, code_android_festival_way



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

2. Keeping service alive - What is the right way to to go for my app?

At the moment I'm facing kind of a big problem. I am using a service
to listen with the TelephonyManager for incoming calls in order to do
something according to the incoming call. To be able to do this I have
to rely on my running service. It is just sitting in the background
doing nothing. I know that the right behaviour for this situation
would be a BroadcastReceiver registered in the Manifest. But there is
no brodcast sent for incoming calls. So I can't walk this way.

Is there a possibility to keep my service reliable alive? At the
moment I'm just starting the service from my UI with "startService
(..)". Later on I'm binding to my service. Most of the time the
service is running fine in the background but in some rare situations
the service gets killed by the system and is kept killed untill I
restart it from my UI.

Could someone tell me what to do in this case?

I'm looking forward reading your answers.

Regards!
--~--~---------~--~----~------------~-------~--~----~

3. Versioning and Deploying

4. Convert AMR-NB/WB to wav

5. What happened to this API?

6. android repo armv6 build on a omap2430 successfully running

7. need subscription