2015-01-31 3 views
0

В моем эмуляторе Nexux5 Android 4.1.2 (в 4.2.2 Android его работы большой) я получаю эту ошибку:decodeByteArray сбой мое приложение - андроид

01-31 19:32:05.528: E/AndroidRuntime(885): FATAL EXCEPTION: main 
01-31 19:32:05.528: E/AndroidRuntime(885): java.lang.OutOfMemoryError 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:426) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:444) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.example.imhere.Home$14$1.done(Home.java:823) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.parse.GetDataCallback.internalDone(GetDataCallback.java:20) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.parse.GetDataCallback.internalDone(GetDataCallback.java:15) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.parse.Parse$6$1.run(Parse.java:975) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.os.Handler.handleCallback(Handler.java:615) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.os.Handler.dispatchMessage(Handler.java:92) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.os.Looper.loop(Looper.java:137) 
01-31 19:32:05.528: E/AndroidRuntime(885): at android.app.ActivityThread.main(ActivityThread.java:4745) 
01-31 19:32:05.528: E/AndroidRuntime(885): at java.lang.reflect.Method.invokeNative(Native Method) 
01-31 19:32:05.528: E/AndroidRuntime(885): at java.lang.reflect.Method.invoke(Method.java:511) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
01-31 19:32:05.528: E/AndroidRuntime(885): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-31 19:32:05.528: E/AndroidRuntime(885): at dalvik.system.NativeStart.main(Native Method) 

линии com.example.imhere.Home $ 14 $ 1.done (Home.java:823): Bitmap bmp = BitmapFactory.decodeByteArray (данные, 0, data.length);

Данные 'являются байтами [].

Что я могу сделать?

благодаря

ответ

1

ошибка является OutOfMemoryError, что означает, что он говорит. Вы пытаетесь сделать изображение из очень большого ввода. Я бы исследовал, насколько велика byte[] и имеет ли смысл, что получившееся изображение будет помещаться в память на телефоне.

+0

Но почему это происходит только в версии 4.1.2? Что я могу сделать? В прошлом у меня была эта проблема и в других версиях, и я добавил строку: android: largeHeap = "true" – Ron

0

У меня была такая же проблема каждый раз, когда я пытался загрузить фотографию, а затем отображать ее в том же или на следующей странице. Я нашел следующие решения, которые делают мое приложение менее OutOfMemoryErrors.


Я добавил в AndroidManifest.xml, внутри <application ... > тега эту строку: android:largeHeap="true"


Appart из сказанного выше, в каждом месте я декодированного байтовый массив, чтобы преобразовать его в растровое изображение, я сделал это точно так:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 5; 

Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, options); 
Смежные вопросы