Closed Nicovalca closed 4 years ago
For anyone that have this issue I solved by adding a link.xml file (anywhere inside the Asset folder will be fine) with this content:
<?xml version="1.0" encoding="utf-8" ?>
<linker>
<assembly fullname="System">
<type fullname="System.ComponentModel.TypeConverter" preserve="all" />
</assembly>
<assembly fullname="SpotifyAPI.Web">
<namespace fullname="SpotifyAPI.Web.Models" preserve="all" />
<type fullname="SpotifyAPI.Web.Models" preserve="all" />
</assembly>
<assembly fullname="System">
<type fullname="System.ComponentModel.TypeConverter" preserve="all"/>
<type fullname="System.ComponentModel.ArrayConverter" preserve="all"/>
<type fullname="System.ComponentModel.BaseNumberConverter" preserve="all"/>
<type fullname="System.ComponentModel.BooleanConverter" preserve="all"/>
<type fullname="System.ComponentModel.ByteConverter" preserve="all"/>
<type fullname="System.ComponentModel.CharConverter" preserve="all"/>
<type fullname="System.ComponentModel.CollectionConverter" preserve="all"/>
<type fullname="System.ComponentModel.ComponentConverter" preserve="all"/>
<type fullname="System.ComponentModel.CultureInfoConverter" preserve="all"/>
<type fullname="System.ComponentModel.DateTimeConverter" preserve="all"/>
<type fullname="System.ComponentModel.DecimalConverter" preserve="all"/>
<type fullname="System.ComponentModel.DoubleConverter" preserve="all"/>
<type fullname="System.ComponentModel.EnumConverter" preserve="all"/>
<type fullname="System.ComponentModel.ExpandableObjectConverter" preserve="all"/>
<type fullname="System.ComponentModel.Int16Converter" preserve="all"/>
<type fullname="System.ComponentModel.Int32Converter" preserve="all"/>
<type fullname="System.ComponentModel.Int64Converter" preserve="all"/>
<type fullname="System.ComponentModel.NullableConverter" preserve="all"/>
<type fullname="System.ComponentModel.SByteConverter" preserve="all"/>
<type fullname="System.ComponentModel.SingleConverter" preserve="all"/>
<type fullname="System.ComponentModel.StringConverter" preserve="all"/>
<type fullname="System.ComponentModel.TimeSpanConverter" preserve="all"/>
<type fullname="System.ComponentModel.UInt16Converter" preserve="all"/>
<type fullname="System.ComponentModel.UInt32Converter" preserve="all"/>
<type fullname="System.ComponentModel.UInt64Converter" preserve="all"/>
</assembly>
<assembly fullname="System.Core">
<type fullname="System.Linq.Expressions" preserve="all"/>
<type fullname="System.Linq.Expressions.*" preserve="all"/>
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all"/>
<type fullname="System.Linq.Expressions.LambdaExpression" preserve="all"/>
</assembly>
<assembly fullname="System.Linq.Expressions">
<type fullname="System.Linq.Expressions" preserve="all"/>
<type fullname="System.Linq.Expressions.*" preserve="all"/>
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all"/>
<type fullname="System.Linq.Expressions.LambdaExpression" preserve="all"/>
</assembly>
<assembly fullname="netstandard">
<type fullname="System.Linq.Expressions" preserve="all"/>
<type fullname="System.Linq.Expressions.*" preserve="all"/>
<type fullname="System.Linq.Expressions.Interpreter.LightLambda" preserve="all"/>
<type fullname="System.Linq.Expressions.LambdaExpression" preserve="all"/>
</assembly>
</linker>
it seems a newtonsoft.json/IL2CPP issue. If anyone know a better solution please let me know, but so far this worked
Describe the bug I'm not able to comunicate with spotify. The authentication process goes well in both Windows and Mobile (ios/android) but, after the onConnectChangedEvent the app on mobile Crashes unexpectedly with the error in the title (E/Unity: JsonSerializationException: Unable to find a constructor to use for type SpotifyAPI.Web.Models.AvailabeDevices. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'error', line 1, position 9.)
Building using Unity 2019.2, build setting IL2CPPP, api compatibly level .NET standard 2.0.
The MobileScene has problem too. It doesn't cause a crash (even if i can see the same error popping up in my logcat), but each command i try to send to the spotifyService return the error: E/Unity: PlatformNotSupportedException: Operation is not supported on this platform.
To Reproduce:
Expected behavior Spotify premium account linked to the unity application
Platform: Android 9
Unity Version: 2019.2.18