IllegalArgumentException: ширина (0) и высота (218) не могут быть <= 0 - PullRequest
0 голосов
/ 10 марта 2020

Последние пару дней в Android появлялось странное сообщение об ошибке (красный "!") В конструкторе пользовательского интерфейса Studio 3.6 (смотрите полное исключение ниже) для моего приложения Android (минимум: 24, компиляция / target: 27):

Ширина (0) и высота (218) не могут быть <= 0 </p>

Просмотр не выполнен (подробности)

Совет. Попробуйте чтобы обновить sh макет.

Приложение прекрасно собирается, и во время выполнения исключений нет, но я все еще хотел бы это исправить.

Я обновил макет несколько раз время очищал и перестраивал проект, синхронизировал с файлами Gradle и недействительными кешами, даже обновлял до AS 3.6.1, но сообщение об ошибке все еще там.

Странная часть: затрагивается только эта Fragment и даже не должно быть ничего, что имеет ширину 0dp, потому что элементы пользовательского интерфейса, которые установлены на android:layout_width="0dp", также используют layout_weight в то же время, а ширина родительского LinearLayout (горизонтального) всегда установлена ​​на "match_parent" ». «Самые высокие» элементы пользовательского интерфейса, которые могут быть 218dp (они меньше в компоновщике), это datePicker и timePicker, которые также используют веса (0,6 для даты, 0,4 для времени).

Помимо двух рисованных объектов (векторных объектов), которые я также использую в других фрагментах, нет изображений. Один из них я загружаю прямо в код:

toolbar.setNavigationIcon(R.drawable.ic_arrow_back_black_24dp);

Другой загружается как макет menu, чтобы использовать его с правой стороны панели инструментов:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.a2f2_menu, menu);
    super.onCreateOptionsMenu(menu,inflater);
}

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >

    <item
        android:id="@+id/action_save"
        android:icon="@drawable/ic_check_black_24dp"
        android:title="@string/save"
        app:showAsAction="always" />
</menu>

Этот ответ предполагает, что это ошибка в API 23.4, но я использую 24/27 и добавляю библиотеку поддержки в файл сборки (как предложено здесь ) + впоследствии обновляю / перезагружаю все заново не помогло.

Полное исключение:

java.lang.IllegalArgumentException: Width (0) and height (218) cannot be <= 0
    at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
    at java.awt.image.BufferedImage.<init>(BufferedImage.java:333)
    at com.android.layoutlib.bridge.impl.GcSnapshot.<init>(GcSnapshot.java:339)
    at com.android.layoutlib.bridge.impl.GcSnapshot.saveLayer(GcSnapshot.java:255)
    at android.graphics.BaseCanvas_Delegate.saveLayer(BaseCanvas_Delegate.java:787)
    at android.graphics.Canvas_Delegate.nSaveLayer(Canvas_Delegate.java:184)
    at android.graphics.Canvas_Delegate.nSaveUnclippedLayer(Canvas_Delegate.java:190)
    at android.graphics.Canvas.nSaveUnclippedLayer(Canvas.java)
    at android.graphics.Canvas.saveUnclippedLayer(Canvas.java:558)
    at android.view.View.draw_Original(View.java:21542)
    at android.view.View_Delegate.draw(View_Delegate.java:56)
    at android.view.View.draw(View.java:21417)
    at android.view.View.draw_Original(View.java:21317)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21315)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21315)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21315)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21446)
    at android.view.View_Delegate.draw(View_Delegate.java:56)
    at android.view.View.draw(View.java:21417)
    at android.view.View.draw_Original(View.java:21317)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21446)
    at android.view.View_Delegate.draw(View_Delegate.java:56)
    at android.view.View.draw(View.java:21417)
    at android.view.View.draw_Original(View.java:21317)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21446)
    at android.view.View_Delegate.draw(View_Delegate.java:56)
    at android.view.View.draw(View.java:21417)
    at android.view.View.draw_Original(View.java:21317)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21315)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21315)
    at android.view.View_Delegate.draw(View_Delegate.java:68)
    at android.view.View.draw(View.java:21089)
    at android.view.ViewGroup.drawChild_Original(ViewGroup.java:4388)
    at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:65)
    at android.view.ViewGroup.drawChild(ViewGroup.java:4388)
    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4149)
    at android.view.View.draw_Original(View.java:21446)
    at android.view.View_Delegate.draw(View_Delegate.java:56)
    at android.view.View.draw(View.java:21417)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.renderAndBuildResult(RenderSessionImpl.java:404)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.renderAndBuildResult(RenderSessionImpl.java:565)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:425)
    at com.android.layoutlib.bridge.BridgeRenderSession.render(BridgeRenderSession.java:120)
    at com.android.ide.common.rendering.api.RenderSession.render(RenderSession.java:151)
    at com.android.ide.common.rendering.api.RenderSession.render(RenderSession.java:133)
    at com.android.tools.idea.rendering.RenderTask.lambda$null$9(RenderTask.java:819)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Что вызывает эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...