Localization with Storyboard - error when moving storyboards to Base folder - xamarin.ios

I am trying to follow the tutorial posted on the Blog on how to localize with Storyboards
http://blog.xamarin.com/howto-localize-ios-storyboards-monotouch/
When I create the folder Base.lproj and move the storyboard, the app stops working and I get the following error when I run it:
MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInvalidArgumentException Reason: There doesn't seem to be a valid compiled storyboard at path '/Users/daniel/Library/Application Support/iPhone Simulator/6.1/Applications/62404087-7F41-4A27-ADBD-4A0010BDD5C8/TestingApp.app/MainStoryboard_iPhone_Checklist.storyboardc' at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 at TestingApp.Application.Main (System.String[] args) [0x00000] in /Users/daniel/Documents/github/TestingApp/TestingApp/iOS/TestingApp/TestingApp/Main.cs:17
(when the storyboard is on the root of the project, the project works fine)
Does anybody knows how to fix this?
Thanks

So here is my solution/workaround.
Instead of setting up the storyboard on the settings, I get it on the AppDelagate like this:
UIStoryboard storyboard = UIStoryboard.FromName ("Base.lproj/MainStoryboard_iPhone_Checklist", null);
That way I dont get the exception and Localization works fine.

Related

Unity Game Server: NullReferenceException: Object reference not set to an instance of an object

I'm running a Valheim Game Server on Linus. And on startup it chrashes at following error and the terminal freezes.
03/20/2022 00:58:19: Builder started
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 39)
NullReferenceException: Object reference not set to an instance of an object
at HeightmapBuilder.Build (HeightmapBuilder+HMBuildData data) [0x0005e] in <91ef1facb79f4708aa34c3c8c1befc47>:0
at HeightmapBuilder.BuildThread () [0x00067] in <91ef1facb79f4708aa34c3c8c1befc47>:0
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <b6074dacdf2142f38da4050b03a225bb>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <b6074dacdf2142f38da4050b03a225bb>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <b6074dacdf2142f38da4050b03a225bb>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <b6074dacdf2142f38da4050b03a225bb>:0
at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <b6074dacdf2142f38da4050b03a225bb>:0
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.<>c:<RegisterUECatcher>b__0_0(Object, UnhandledExceptionEventArgs)
(Filename: <91ef1facb79f4708aa34c3c8c1befc47> Line: 0)
I searched this error, but nothing helped me, so I'm forced to create this question.
I'm using a Rootserver with Debian 4.02.
If there is anything more I need to share, please tell me.
Greetings
The new update broke my start up BAT on windows and gave this exact error. I simply copied the supplied default "start_headless_server.bat file and added my server name, world name, port and password and it is now working flawlessly. Your Linux server files should have a SH that is a default template. I would advise trying the same.
I had this problem too. Did you rename the world file? I was working fine then I renamed the world file and the startup gave me that error. restoring the file with the correct name fixed the issue for me. It was a total guess.
When you use the game to create and start the world, it doesn't matter. I was setting up a dedicated server to use with friends and he had used the same password as the world name so I figured I would just change the world name so we could keep the password. So, in the start up script, I changed the password but kept the world name the same. Hope this helps.
This same problem were occurring to me, both in my local server and cloud server; I did some digging and managed to fix mine.
The problem originated from start_server.sh or start_headless_server.bat
specifically, on -password and -world parameter.
Apparently, if a world has been made and a password was already set on it, changing the password will result in said error for me. Changing the password to default or the one that you set when running the world for the first time fixes it for me.
I have little to no experience on game development, so I'm sorry if I couldn't give a much clearer answer.

Linux : System.DllNotFoundException: UnityInterface2.dll

I am trying to run the asset imported from
https://www.assetstore.unity3d.com/en/#!/content/10693
It works fine in windows , but I get below error in Linux at below code
.....code start.......
[DllImport("UnityInterface2.dll", SetLastError=true)]
public static extern int Init(bool isInitDepthStream, bool isInitColorStream, bool isInitInfraredStream);
.......code end........
...error....
System.DllNotFoundException: UnityInterface2.dll
at (wrapper managed-to-native) KinectWrapper:Init (bool,bool,bool)
at KinectManager.Start () [0x00000] in /home/ashok/New Unity Project/Assets/KinectScripts/KinectManager.cs:657
UnityEngine.Debug:LogError(Object)
KinectManager:Start() (at Assets/KinectScripts/KinectManager.cs:808)
Linux is not supported. It was not built to work on Linux. The plugin only supports Windows and Mac. That's it. Even when you look on the Store, it says the plugin is for Windows and Mac. Linux was never mentioned anywhere.

UnityVS error on importing?

I have imported UnityVS 2.1 in my Unity 5.1.1f1 Personal.. and as soon as I import I get the following error.
DirectoryNotFoundException: Could not find a part of the path
"C:\Users\Public\Documents\Unity Projects\Achievement
system\Library\UnityAssemblies\version.txt".
System.IO.FileStream..ctor (System.String path, FileMode mode,
FileAccess access, FileShare share, Int32 bufferSize, Boolean
anonymous, FileOptions options) (at
/Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/FileStream.cs:292)
System.IO.FileStream..ctor (System.String path, FileMode mode,
FileAccess access, FileShare share) (wrapper
remoting-invoke-with-check) System.IO.FileStream:.ctor
(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
System.IO.StreamWriter..ctor (System.String path, Boolean append,
System.Text.Encoding encoding, Int32 bufferSize) (at
/Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/StreamWriter.cs:124)
System.IO.StreamWriter..ctor (System.String path, Boolean append)
(wrapper remoting-invoke-with-check) System.IO.StreamWriter:.ctor
(string,bool) System.IO.File.CreateText (System.String path) (at
/Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.IO/File.cs:159)
SyntaxTree.VisualStudio.Unity.Bridge.ProjectFilesGenerator.CreateVersionFile
(System.String[] assemblies)
SyntaxTree.VisualStudio.Unity.Bridge.ProjectFilesGenerator.DeployUnityAssemblies
(SyntaxTree.VisualStudio.Unity.Bridge.ProjectSystem.UnitySolution
solution)
SyntaxTree.VisualStudio.Unity.Bridge.ProjectFilesGenerator.GenerateProject
()
SyntaxTree.VisualStudio.Unity.Bridge.Project+<>c__DisplayClass4.b__3
() UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at
C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:264)
Can anyone tell me what is the problem?
I am using VS2015 community edition.
Ok I have solved the problem... it seems like the UnityVS didnt create the folder structure as follows by itself
\Library\UnityAssemblies\version.txt
So I created it manually by creating the UnityAssemblies folder and a blank text file named version.txt inside it... and bam it worked perfectly..
Stupid UnityVS... had me worrying for 1 hour.
This happens when your project has no scripts and wasnt started at least 1 time, only then that folder and file is created

StackOverflowException inside SimpleInjector in MVC WebApi project

We are building a website with UI and API, both hosted within single ASP.NET MVC project ("usual" MVC + MVC WebApi under one hood). We are using SimpleInjector (the latest version, 2.8 as of now) for dependency injection. We have single composition root class to construct containers for both UI and API parts.
Since recently (noticed a couple of weeks ago) we are receiving connection reset errors (ERR_CONNECTION_RESET) when we try accessing any API method in QA. The same code in UAT works just fine.
Locally, the same code errors out with StackOverflowException if run under IIS, but works fine under IIS Express and under IIS if we run it with debugger attached.
Our current code gives the following stack trace when we attach to iis worker process after the exception occurs:
SimpleInjector.Compiled!DynamicInstanceProducer3.GetInstance(object[] constants)
SimpleInjector.dll!SimpleInjector.CompilationHelpers.CompileInDynamicAssemblyAsClosure<System.__Canon>.AnonymousMethod__1a()
SimpleInjector.dll!SimpleInjector.InstanceProducer.GetInstance()
SimpleInjector.dll!SimpleInjector.Container.GetInstance(System.Type serviceType)
System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(System.Net.Http.HttpRequestMessage request, System.Type controllerType, out System.Func<System.Web.Http.Controllers.IHttpController> activator)
System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(System.Net.Http.HttpRequestMessage request, System.Web.Http.Controllers.HttpControllerDescriptor controllerDescriptor, System.Type controllerType)
System.Web.Http.dll!System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(System.Net.Http.HttpRequestMessage request)
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync()
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start<System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync>(ref System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync stateMachine)
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Net.Http.dll!System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.dll!System.Web.Http.HttpServer.SendAsync()
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start<System.Web.Http.HttpServer.SendAsync>(ref System.Web.Http.HttpServer.SendAsync stateMachine)
System.Web.Http.dll!System.Web.Http.HttpServer.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Net.Http.dll!System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
System.Web.Http.WebHost.dll!System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore()
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start<System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore>(ref System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore stateMachine)
System.Web.Http.WebHost.dll!System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore(System.Web.HttpContextBase contextBase)
System.Web.dll!System.Web.TaskAsyncHelper.BeginTask(System.Func<System.Threading.Tasks.Task> taskFunc, System.AsyncCallback callback, object state)
System.Web.dll!System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step, ref bool completedSynchronously)
System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error)
System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb)
System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr, System.Web.HttpContext context)
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags)
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags)
[Native to Managed Transition]
[Managed to Native Transition]
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags)
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr rootedObjectsPointer, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags)
[AppDomain Transition]
I.e., looks like nothing bad happens inside our code.
When we take some old code (one that is currently in production, for instance, and is working fine), we also have StackOverflowException, but in static constructor of our EntityFramework DB context (code first) on line
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContextType, Configuration>());
Funny thing is that it no longer suggests to attach to the process with old code, so I cannot provide the stack trace - I will update the question, if I manage to grab it.
Note that usual MVC works normally still (while using the same Composition Root class with slight natural differences for WebApi and MVC creation modes).
I can provide further code snippets, if it is reasonable, but the project is quite big, so I am not sure small snippets will help here.
Any ideas what this might be? Can it be because of the number of dependencies?
UPDATE: The issue does not appear after in one of the services which depends on four other services I removed the dependencies from the constructor, injected the container there, and resolved the dependencies manually in the constructor. I.e., it was:
public MyDependentService(IDependency1 dependency1, IDependency2 dependency2, IDependency3 dependency3, IDependency4 dependency4)
{
this.dependency1 = dependency1;
this.dependency2 = dependency2;
this.dependency3 = dependency3;
this.dependency4 = dependency4;
}
and it became
public MyDependentService(Container container)
{
this.dependency1 = container.GetInstance<IDependency1>();
this.dependency2 = container.GetInstance<IDependency2>();
this.dependency3 = container.GetInstance<IDependency3>();
this.dependency4 = container.GetInstance<IDependency4>();
}
So now everything works, but of course this is not the right way to deal with dependencies. This is actually not IoC anymore. What's going on?

Attempting to JIT compile method '(wrapper managed-to-native) System.DateTime:GetTimeMonotonic ()

I have this stack trace from some of our users and I have very little idea on how to track it down since it seems to work fine for most of the users.
Same issue is mentioned here:
http://forums.xamarin.com/discussion/15701/jit-executionengineexception-on-llvm-compiled-production-app
Any help would be very appreciated!
Device info: iOS 7.1.2, timezone=-25200,
21:29:27: : Attempting to JIT compile method '(wrapper managed-to-native) System.DateTime:GetTimeMonotonic ()' while running with --aot-only. See http://docs.xamarin.com/ios/about/limitations for more information.
- at System.Threading.Timer+Scheduler.SchedulerThread () [0x00000] in :0
at System.Threading.Thread.StartInternal () [0x00000] in :0
It is a rare race condition, there is a bug fix coming up.

Resources