Genom
Topic Author
Posts: 47
Joined: 04 Dec 2014, 14:47

Rendering in iOS

09 Dec 2015, 13:02

Hi, I have a "not registered error" about an Interface when I am running my app in iOS, the error is:
NoesisError: Can't create component System.Collections.Generic.List`1[[Common.Lib.UI.IViewModelBase, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], it is not registered

  [ 0] 0   Onway                               0x00000001013ad154 il2cpp_z_zcfree + 24976

  [ 1] 0   Onway                               0x0000000101529e2c Noesis_Init + 1420

  [ 2] 0   Onway                               0x00000001013ad84c il2cpp_z_zcfree + 26760

  [ 3] 0   Onway                               0x00000001013a9c7c il2cpp_z_zcfree + 11448

  [ 4] 0   Onway                               0x00000001013bb76c _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 32372

  [ 5] 0   Onway                               0x00000001013b58c8 _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 8144

  [ 6] 0   Onway                               0x00000001013a70f0 il2cpp_z_zcfree + 300

  [ 7] 0   Onway                               0x00000001013d03d4 _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 117468

  [ 8] 0   Onway                               0x00000001016b4b50 UnityRenderEvent + 1610232

  [ 9] 0   Onway                               0x00000001013cf3f0 _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 113400

  [10] 0   Onway                               0x00000001013cf818 _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 114464

  [11] 0   Onway                               0x0000000101459a24 _ZN5eastl11RBTreeEraseEPNS_16rbtree_node_baseES1_ + 680236

  [12] 0   Onway                               0x000000010152a1d0 Noesis_LoadXAML + 40

  [13] 0   Onway                               0x00000001000cb9c8 NoesisGUISystem_Noesis_LoadXAML_m14_1101 + 52

  [14] 0   Onway                               0x00000001000ca9f8 NoesisGUISystem_Load_m14_1095 + 116

  [15] 0   Onway                               0x00000001000d2710 NoesisGUIPanel_LoadXaml_m14_1273 + 344

  [16] 0   Onway                               0x0000000100baafc8 _Z25RuntimeInvoker_Void_t1_29PK10MethodInfoPvPS2_ + 28

  [17] 0   Onway                               0x00000

NoesisGUIPanel:LoadXaml()
do you know what could be happening or do I submit an bug?

btw I think the documentation to build for iOS should be updated (I can't find the 24bits checkbox) and also after building, I have to copy the folder Plugins (with noesis lib) in Libraries and then rename it to LibrariesPlugins and move it to the upper level, otherwise the XCode gives a not found exception. I don't know if this a Unity problem or a Noesis' one..

cheers!
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Rendering in iOS

09 Dec 2015, 18:51

The first problem is probably related to having the DataContext directly stored in the XAML. Is that your case? If affirmative, a fast workaround is setting the DataContext manually in C#.

Regarding the XCode issues, the only explanation I find is that you are using XCode 7, yet not tested. Could that be the problem?
 
Genom
Topic Author
Posts: 47
Joined: 04 Dec 2014, 14:47

Re: Rendering in iOS

10 Dec 2015, 22:31

Hi! you nailed it, I just moved the MainViewModel from the xaml and I attached it to the MainView and it worked.

About the other things, yes I'm using Xcode 7.1, let me summarize the things I have to do compile to XCode (I don't know what's noesis part or Unity but it may help others):



1) After building I have to move a folder called Plugin within Libraries to outside of it (so at the same level than Libraries) and rename it as LibrariesPlugin: it seem that the XCode tries to find noesis component missing the Slash between Libraries and plugins.

2) Once I copied the built code from Unity to my Mac, I have to run this command in the bash:

chmod +x /Users/Jose/Desktop/MyIosApp/MapFileParser.sh

(no fu###ing idea why but otherwise it cannot access to something)

3 In Xcode - build settings I have to set Build Active Architecture Only-Release to Yes and Debug to No. This even though in Unity settings I select Release option when building


After that, it work and the performance is incredibly amazing in iPhone, like 10 times better than Android. I did some performance tests and when I compile to Android ILC2CPP the difference is much lower (maybe 2-4 times) but I could not test Noesis, as we are pending from Unity to fix the bug I reported to you (https://trello.com/c/RyN6wWUd/290-android-il2cpp) Do you have any feedback from them about btw?

thanks!
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Rendering in iOS

12 Dec 2015, 01:39

Hi! you nailed it, I just moved the MainViewModel from the xaml and I attached it to the MainView and it worked.
It is a problem related to the serialization process that happens when XAMLs are prepossessed. It is going to be solved in v1.3. Although, the solution I gave you is probably a better solution than your approach because you avoid exposing the model in the view (the XAML).
About the other things, yes I'm using Xcode 7.1, let me summarize the things I have to do compile to XCode (I don't know what's noesis part or Unity but it may help others):
Thanks for the detailed explanation, we are working in a 1.2.5 release (planned to be released early next week) that will add Unity5.3 compatibility. I will also dedicate time to test with XCode7.1.
After that, it work and the performance is incredibly amazing in iPhone, like 10 times better than Android. I did some performance tests and when I compile to Android ILC2CPP the difference is much lower (maybe 2-4 times) but I could not test Noesis, as we are pending from Unity to fix the bug I reported to you (https://trello.com/c/RyN6wWUd/290-android-il2cpp) Do you have any feedback from them about btw?
Waiting for an official answer

http://answers.unity3d.com/questions/10 ... e-not.html

We will push again next week.
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Rendering in iOS

12 Dec 2015, 16:33

They answered: "Yes, I believe that this issue was corrected via a different bug report. I'll ping our Android team to confirm though. The fix should be in the 5.2.3p3 patch release."
 
Genom
Topic Author
Posts: 47
Joined: 04 Dec 2014, 14:47

Re: Rendering in iOS

13 Dec 2015, 16:19

Thanks! However I've tried to compiled again with Android IL2CPP and noesis 1.2.5 and it keeps giving errors (I don't know if this has something to do with noesis or not)
Exception: IL2CPP Compilation failed
UnityEditor.Android.AndroidIl2CppClangCompiler.CompileDynamicLibrary (System.String outFile, IEnumerable`1 sourceFiles, IEnumerable`1 includePaths, IEnumerable`1 libraries, IEnumerable`1 libraryPaths)
UnityEditorInternal.IL2CPPBuilder.Run () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:218)
UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String tempFolder, System.String stagingAreaData, IIl2CppPlatformProvider platformProvider, System.Action`1 modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry, Boolean developmentBuild) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:128)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareIl2cppFiles (System.String stagingArea, System.String assetsData, UnityEditor.Android.AndroidIl2CppPlatformProvider provider, UnityEditor.RuntimeClassRegistry usedClassRegistry, Boolean developmentPlayer)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcessInternal (System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:316)
UnityEditor.HostView:OnGUI()
 
User avatar
jsantos
Site Admin
Posts: 3925
Joined: 20 Jan 2012, 17:18
Contact:

Re: Rendering in iOS

17 Dec 2015, 15:15

For XCode issues, please, try with the latest version of NoesisGUI (1.2.5f9) and Unity 5.3. I have verified that it works properly with the latest version of XCode (7.2).

The problem with Android IL2CPP you mention, seems to be a bug in Unity. I would wait a bit because right now the IL2CPP implementation seems to be quite buggy in Unity. Or you could report the problem in their forums. If you are lucky you will get an answer. Unfortunately, we are not always that lucky. : )

Who is online

Users browsing this forum: Polymorph and 13 guests