Неустранимое исключение: java.lang.OutOfMemoryError: EnsureLocalCapacity (FileInputStream.open0, android.graphics.Typeface.getFullFlipFont) - PullRequest
0 голосов
/ 05 октября 2018

После обновления BuildTools с 23 до 27 я столкнулся с проблемой сбоя.

Я проверил использование ОЗУ в профилировщике - там нет никаких аномалий.Приложение вылетает иногда в фоновом режиме, иногда на переднем плане, в разных действиях (сбой полностью недетерминирован), кажется, что оно не зависит от использования памяти (могло произойти сбой при использовании 350 МБ, как и при 200 МБ)

Iтакже установлен 'square / leakcanary', чтобы найти утечки памяти, но там ничего нет ...

Кажется, проблема с загрузкой родной гарнитуры.Я не использую пользовательский шрифт в этом приложении.Мне удалось сбить приложение на Samsung S9 и Samsung S5.Есть идеи?: (

Спасибо за любую помощь!

Stacktrace:

2018-10-05 08:09:04.740 20542-20542/pl.chillout.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: pl.chillout.debug, PID: 20542
java.lang.OutOfMemoryError: EnsureLocalCapacity
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:200)
    at java.io.FileInputStream.<init>(FileInputStream.java:150)
    at android.graphics.Typeface.getFullFlipFont(Typeface.java:1275)
    at android.graphics.Typeface.getFontPathFlipFont(Typeface.java:1220)
    at android.graphics.Typeface.SetFlipFonts(Typeface.java:1413)
    at android.graphics.Typeface.SetAppTypeFace(Typeface.java:1547)
    at android.app.Activity.onCreate(Activity.java:1020)
    at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:321)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
    at pl.chillout.redesign.activity.BaseDrawerActivity.onCreate(BaseDrawerActivity.java:45)
    at pl.chillout.redesign.activity.ChilloutActivity.onCreate(ChilloutActivity.java:115)
    at android.app.Activity.performCreate(Activity.java:7174)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Ответы [ 4 ]

0 голосов
/ 26 июля 2019

На самом деле, мне наконец удалось полностью «исправить» этот сбой (как я уже упоминал в разделе с комментариями к вопросу, проблема не была применима к релизным сборкам) путем обновления BuildTools с версии 27 до 28.

0 голосов
/ 13 ноября 2018

причина такой ситуации возможно вы используете такие статические объекты:

private static TextView textView; //DO NOT DO THIS
private static Context context; //DO NOT DO THIS

это первый признак утечки памяти.

К сожалению, нет полного кода

0 голосов
/ 13 ноября 2018

Уважаемый add largeheap = true в манифесте.затем закончите начатую деятельность.И проверьте свои размеры (размер).Я столкнулся с этой проблемой в PagerView.Я изменяю размер нарисованных изображений.и закончить все действия.и largheap теперь крах удаляется.Я думаю, что ваша ошибка, связанная с устройствами orio, инициализируйте все объекты для устройств orio.

0 голосов
/ 13 ноября 2018

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

 <TextView
  .....
 android:fontFamily="sans-serif" />
...