'Crash when opening Android window after using Unity ScrollRect component

java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Version '2020.3.14f1 (d0d1bb862f9d)', Build type 'Release', Scripting Backend 'mono', CPU 'armeabi-v7a' Build fingerprint: 'HUAWEI/ANA-AN00/HWANA:10/HUAWEIANA-AN00/102.0.0.236C00:user/release-keys' Revision: '0' ABI: 'arm' Timestamp: 2022-05-17 17:02:37+0800 pid: 11322, tid: 13025, name: UnityMain >>> com.hwen.egg <<< uid: 10270 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 Cause: null pointer dereference r0 b7d0d000 r1 00ffffe9 r2 00000001 r3 00ffffdc r4 00000000 r5 00000000 r6 00000010 r7 00420000 r8 00400001 r9 ec6eb17c r10 00400011 r11 00001d10 ip bbb87420 sp ba47a8e8 lr bade8ca1 pc bb497e32

backtrace:
      #00 pc 00953e32  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #01 pc 002a4c9d  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #02 pc 002a1307  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #03 pc 002a121d  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #04 pc 00399cc1  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #05 pc 000bbf4d  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #06 pc 001cb68f  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #07 pc 002f62cb  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #08 pc 002f6ae7  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #09 pc 0087ac77  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #10 pc 00877da3  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #11 pc 00874025  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #12 pc 00875d93  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #13 pc 00889a6b  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #14 pc 00889999  /data/app/com.hwen.egg-kLmp4gehHdP02YIKdyPSiw==/lib/arm/libunity.so
      #15 pc 000040d6  <anonymous:d197e000>

managed backtrace:

#00 (wrapper managed-to-native) UnityEngine.TextGenerator:Populate_Internal_Injected (UnityEngine.TextGenerator,string,UnityEngine.Font,UnityEngine.Color&,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,int,int,bool,UnityEngine.TextAnchor,single,single,single,single,bool,bool,uint&)
      #01 UnityEngine.TextGenerator:Populate_Internal (string,UnityEngine.Font,UnityEngine.Color,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,int,int,bool,UnityEngine.TextAnchor,single,single,single,single,bool,bool,uint&) <0x1a7>
      #02 UnityEngine.TextGenerator:Populate_Internal (string,UnityEngine.Font,UnityEngine.Color,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,UnityEngine.VerticalWrapMode,UnityEngine.HorizontalWrapMode,bool,UnityEngine.TextAnchor,UnityEngine.Vector2,UnityEngine.Vector2,bool,bool,UnityEngine.TextGenerationError&) <0x207>
      #03 UnityEngine.TextGenerator:PopulateAlways (string,UnityEngine.TextGenerationSettings) <0x2d7>
      #04 UnityEngine.TextGenerator:PopulateWithError (string,UnityEngine.TextGenerationSettings) <0x20b>
      #05 UnityEngine.TextGenerator:PopulateWithErrors (string,UnityEngine.TextGenerationSettings,UnityEngine.GameObject) <0x10b>
      #06 UnityEngine.UI.Text:OnPopulateMesh (UnityEngine.UI.VertexHelper) <0x1c3>
      #07 UnityEngine.UI.Graphic:DoMeshGeneration () <0x127>
      #08 UnityEngine.UI.Graphic:UpdateGeometry () <0x2b>
      #09 UnityEngine.UI.Text:UpdateGeometry () <0x37>
      #10 UnityEngine.UI.Graphic:Rebuild (UnityEngine.UI.CanvasUpdate) <0x6b>
      #11 UnityEngine.UI.CanvasUpdateRegistry:PerformUpdate () <0x3fb>
      #12 (wrapper delegate-invoke) <Module>:invoke_void ()
      #13 UnityEngine.Canvas:SendWillRenderCanvases () <0x33>
      #14 UnityEngine.Canvas:ForceUpdateCanvases () <0xb>
      #15 UnityEngine.UI.ScrollRect:EnsureLayoutHasRebuilt () <0x2b>
      #16 UnityEngine.UI.ScrollRect:LateUpdate () <0x83>
      #17 (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)

    at libunity.0x953e32(Native Method)
    at libunity.0x2a4c9d(Native Method)
    at libunity.0x2a1307(Native Method)
    at libunity.0x2a121d(Native Method)
    at libunity.0x399cc1(Native Method)
    at libunity.0xbbf4d(Native Method)
    at libunity.0x1cb68f(Native Method)
    at libunity.0x2f62cb(Native Method)
    at libunity.0x2f6ae7(Native Method)
    at libunity.0x87ac77(Native Method)
    at libunity.0x877da3(Native Method)
    at libunity.0x874025(Native Method)
    at libunity.0x875d93(Native Method)
    at libunity.0x889a6b(Native Method)
    at libunity.0x889999(Native Method)
    at UnityEngine.TextGenerator.Populate_Internal_Injected (UnityEngine.TextGenerator,string,UnityEngine.Font,UnityEngine.Color&,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,int,int,bool,UnityEngine.TextAnchor,single,single,single,single,bool,bool,uint&)(Native Method)
    at UnityEngine.TextGenerator.Populate_Internal (string,UnityEngine.Font,UnityEngine.Color,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,int,int,bool,UnityEngine.TextAnchor,single,single,single,single,bool,bool,uint&)(0x1a7:423)
    at UnityEngine.TextGenerator.Populate_Internal (string,UnityEngine.Font,UnityEngine.Color,int,single,single,UnityEngine.FontStyle,bool,bool,int,int,UnityEngine.VerticalWrapMode,UnityEngine.HorizontalWrapMode,bool,UnityEngine.TextAnchor,UnityEngine.Vector2,UnityEngine.Vector2,bool,bool,UnityEngine.TextGenerationError&)(0x207:519)
    at UnityEngine.TextGenerator.PopulateAlways (string,UnityEngine.TextGenerationSettings)(0x2d7:727)
    at UnityEngine.TextGenerator.PopulateWithError (string,UnityEngine.TextGenerationSettings)(0x20b:523)
    at UnityEngine.TextGenerator.PopulateWithErrors (string,UnityEngine.TextGenerationSettings,UnityEngine.GameObject)(0x10b:267)
    at UnityEngine.UI.Text.OnPopulateMesh (UnityEngine.UI.VertexHelper)(0x1c3:451)
    at UnityEngine.UI.Graphic.DoMeshGeneration ()(0x127:295)
    at UnityEngine.UI.Graphic.UpdateGeometry ()(0x2b:43)
    at UnityEngine.UI.Text.UpdateGeometry ()(0x37:55)
    at UnityEngine.UI.Graphic.Rebuild (UnityEngine.UI.CanvasUpdate)(0x6b:107)
    at UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate ()(0x3fb:1019)
    at <Module>.invoke_void ()(Native Method)
    at UnityEngine.Canvas.SendWillRenderCanvases ()(0x33:51)
    at UnityEngine.Canvas.ForceUpdateCanvases ()(0xb:11)
    at UnityEngine.UI.ScrollRect.EnsureLayoutHasRebuilt ()(0x2b:43)
    at UnityEngine.UI.ScrollRect.LateUpdate ()(0x83:131)


Solution 1:[1]

It is Unity bug.Upgrade my Unity 2020.3.14->2020.3.34 can fixed!

Solution 2:[2]

After adding a background() call to the draw() the problem now appears to be with the SQUARE strokeCap as I initially thought and not the noLoop(). REM out strokeCap(SQUARE) and it runs ok. UN-REM it and the lines come back with or without noLoop(); PROJECT caps and no caps are still without lines, with or without noLoop(). I don't think the float values make a difference. Note that I removed the decimal values for strokeCap(SQUARE) to rule this out as a possibility. I'm unable to tell you why the lines occur with strokeCap(SQUARE), but the only way that I see to get rid of the lines is to use the PROJECT option, no caps at all, or keep them, but overlap the ends by 1 point. For whatever it's worth, Processing Reference states that all parameters for line() are floats.

void setup() {
  size(500, 500);
  noLoop();
}

void draw() {
  background(209); // Added and it makes a difference
  stroke(0);
  strokeWeight(50);
  // NO cap
  line(60, 80, 180.3, 80);  
  line(180.3, 80, 280.8, 80);
  line(280.8, 80, 380.5, 80);
  // (SQUARE) cap
  strokeCap(SQUARE); // REM this out to get rid of lines
  line(60, 160, 160, 160);
  line(160, 160, 260, 160);
  line(260, 160, 360, 160);
  // (PROJECT) cap
  strokeCap(PROJECT);
  line(60, 260, 160.5, 260);
  line(160.5, 260, 260.5, 260);
  line(260.5, 260, 360.5, 260);
  // (SQUARE) cap with 1 point of overlap
  strokeCap(SQUARE); // No lines with overlap
  line(60, 360, 160.8, 360);
  line(159.8, 360, 260.3, 360);
  line(259.3, 360, 360.5, 360);
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Erik Fu
Solution 2