Languages

Menu
Sites
Language
NET app cannot be started on Galaxy Watch 3, crashes on Internal CLR error (0x80131506)

Hi, our Xamarin.Forms app for Samsung Watch (Tizen) did not pass the review process to Samsung Store, because it crashed on startup. The log says:

System.NullReferenceException: Object reference not set to an instance of an object.
   at KTizen.App..ctor()
   at KTizen.Program.OnCreate()
   at Tizen.Applications.CoreBackend.UICoreBackend.OnCreateNative(IntPtr data)
   at Tizen.Applications.CoreBackend.UICoreBackend.Run(String[] args)
   at Tizen.Applications.CoreApplication.Run(String[] args)
   at Tizen.Applications.CoreUIApplication.Run(String[] args)
   at KomootTizen.Program.Main(String[] args)
Fatal error. 
Internal CLR error. (0x80131506)
   at Interop+Application.Main(Int32, System.String[], UIAppLifecycleCallbacks ByRef, IntPtr)
   at Tizen.Applications.CoreBackend.UICoreBackend.Run(System.String[])
   at Tizen.Applications.CoreApplication.Run(System.String[])
   at Tizen.Applications.CoreUIApplication.Run(System.String[])
   at KomootTizen.Program.Main(System.String[])
onSigabrt called

This seems to be an internal exception in the .NET Core itself / device firmware issue. How can we debug this? How can we fix it?

We have all our code in the contructor wrapped with a try/catch block, so technically it should never crash there.

Edited by: Tomas Slavicek on 16 Sep, 2020

Responses

6 Replies
Tizen .NET

Hi,
Does the issue occur on only Galaxy Watch 3 (Tizen 5.5)? Or does it also occur on Galaxy Watch (Tizen 4.0)?
It is difficult to check the issue with only the exception log you shared with us.
We would appreciate it if you send us(tizen.net@samsung.com) the sample code and test environment(such as Galaxy Watch 3 SW verion info) that can reproduce this problem.
Thank you in advance.

Tomas Slavicek

I was finally able to reproduce this problem. Yes, this happens only on a Galaxy Watch 3 with Tizen 5.5, it works correctly on Galaxy Active with Tizen 4.0

More logs from the device:

System.NotSupportedException: Unsupported feature at Tizen.Network.Connection.ConnectionErrorFactory.ThrowConnectionException(Int32 errno, String message) at Tizen.Network.Connection.ConnectionInternalManager.get_EthernetState() at Tizen.Network.Connection.ConnectionItem.get_State() at KomootTizen.Runtime..ctor(IStorageService storage) at KomootTizen.App..ctor()

You cannot call ConnectionManager.CurrentConnection.State from App constructor, or from a property definition, this crashes the whole device. If you call the ConnectionManager.CurrentConnection.Type, it works correctly.

For example this code in the App constructor means that the app will not start:

_lastConnectionState = ConnectionManager.CurrentConnection.State;

But it gets weird :) If you write this in the code, and push the .tpk file into the device, it works. If you upload this .tpk file into Samsung beta store, then the app cannot be started on the watch. Not sure how this can be different, but you really need to upload the app into beta store or to the public store to see it.

I compile with the Visual Studio 2019, and the Tizen.NET.Sdk 1.0.9 (the same problem happens with the Sdk 1.1.5). I specify explicitly that I want only the tizen-armel architecture, otherwise the .csproj file is pretty standard:

<Project Sdk="Tizen.NET.Sdk/1.0.9">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>tizen40</TargetFramework>
    <RuntimeIdentifier>tizen-armel</RuntimeIdentifier>
    <PackageId>de.xxxx.tizenapp</PackageId> 
    <ApplicationIcon />
  </PropertyGroup>
  
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="SkiaSharp.Views.Forms" Version="1.68.3" />
    <PackageReference Include="Tizen.Wearable.CircularUI" Version="1.4.0" />
    <PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
    <PackageReference Include="Xamarin.Forms" Version="4.8.0.1451" />
  </ItemGroup>

It was good that I could get the logs from the device via Device Manager, but still took me really long time to discover this. Thank you, if you can look on it and fix it :)

Tizen .NET

Hi, 

Thank you for reporting the problem. It will be fixed soon. (We have the public MR schedule at the end of October for Galaxy Watch 3 BT model)

Sorry for the inconvenience.

Thanks.

 

Tomas Slavicek

What's odd, that I had all of my code wrapped with try/catch, but it still did not catch the error and the app crashed on onSigabrt called. There must be something wrong in the libraries.

Tomas Slavicek

Hi everybody,

The Galaxy Watch 3 got an update to Tizen 5.5.0.1 and this problem has been fixed. I can call var state = ConnectionManager.CurrentConnection.State; and the app does not crash anymore.

But there is another new issue related to .NET and the new Tizen. The app that was previously installed from the Samsung Store crashes now on startup with this exception:

Unhandled exception.
System.IO.FileLoadException: ERROR: Native images generated against multiple versions of assembly System.Private.CoreLib.
onSigabrt called

It means the app crashes for all Galaxy Watch 3 users that updated to Tizen 5.5.0.1 now.

When they reinstall the app, it works. Also if I deploy the app into watch from Visual Studio / Tizen device manager (the same installation file), it works.

Seems that in the new Tizen OS there is some mix up of libraries, some cache that has not been cleared? Or some other issue?

Thank you for looking on it.

Tizen .NET

Hello,
First of all, sorry for the inconvenience. 
This issue seems to be a FOTA related issue. We are preparing a version that solves the problem.
I will check the next SW update schedule and share it with you.
Anyway, it may be inconvenient, but if you reinstall the app as a temporary measure, this issue will not be reproduced.
Please let us know if you have any other problems.
Thanks.