2016-08-08 4 views
-1

enter image description hereИз MemoryError андроида

E/искусство: Метание OutOfMemoryError «Не удалось выделить распределение 42469452 байт с 16777216 свободных байтов и 31MB до ООМ»

я получил этот вопрос, но для чего его говоря OutOfMemoryError I «Не получается». Любой может помочь решить эту проблему.

Пожалуйста, не голосуйте, потому что я не понимаю, для чего проблема была создана.

+0

уменьшить размер изображения –

+0

Что может быть причиной этого? Некоторый контекст/код определенно помогут. – Shaishav

+0

post полная трассировка стека – Keshav1234

ответ

1

Уменьшить размер изображения используйте это ссылки ....

Для PNG

CompressPng

TinyPng

Для JPG

CompressJpeg

TinyJpg

Примечание: -make размер менее 50 кб, если это возможно ......

наслаждаться кодирования .........

+0

Если я использую файл 151 КБ для фона изображения, это вызовет выход из памяти. Я использую этот фон для всего экрана моего приложения – PriyankaChauhan

+0

@priyankaChauhan, мы можем вам что-нибудь сказать, не запустив logcat? все остальные догадки? –

+0

@SohailZahid, пожалуйста, проверьте его. Я загрузил logcat – PriyankaChauhan

0

You должны включить поддержку MultiDex, поскольку вы видите сообщение в logcat.

To Enable Multidex click here.

вы можете по-прежнему сталкиваются с проблемой при какой-либо другой вопрос, существуют также после включения его попробовать, если по-прежнему сталкиваются проблемы комментарий ниже.

Измените Gradle файл:

android { 
    .... 

    dexOptions { 
     preDexLibraries = false 
     incremental true 
     javaMaxHeapSize "4g" 
    } 
    afterEvaluate { 
     tasks.matching { 
      it.name.startsWith('dex') 
     }.each { dx -> 
      if (dx.additionalParameters == null) { 
       dx.additionalParameters = ['--multi-dex'] 
      } else { 
       dx.additionalParameters += '--multi-dex' 
      } 
     } 
    } 
    ... 
} 
+0

Уже Multidex is TRUE – PriyankaChauhan

+0

все шаги выполняются, как показано в ссылке? –

+0

Да, я сделал все шаги из принятого ответа ссылки – PriyankaChauhan

0

поставил android:largeHeap="true" в манифесте как этот

<application android:name="android.support.multidex.MultiDexApplication" android:icon="@drawable/appicon" android:label="@string/app_name" android:largeHeap="true" android:theme="@style/AppTheme">

ПРИМЕЧАНИЕ: Это может привести к временному решению или нет решения вообще, в этом случае пожалуйста, следуйте методам @sushildlh, чтобы уменьшить размеры изображений. Также это не лучший и не рекомендуемый способ его выполнения, но это эффективное решение. click here to know more

+0

Это не очень хорошая идея, если вы не создаете большое приложение для редактирования изображений или что-то, что вы не должны включать largeHeap в файл манифеста. Все, что вы делаете, скрывает проблему. – FrankR

+0

Я тоже это знаю, скоро отредактирую – Nilabja