dmc31a42 / UnityL10nTool

Unity Game Localization Tools is helper to make localization patch for un-supported language.
70 stars 9 forks source link

Crashes upon opening a project #9

Closed Gnbrkm41 closed 5 years ago

Gnbrkm41 commented 5 years ago

Freshly downloaded the latest release (v0.1.1 I believe?) then attempted to open a game. The UI stops responding from that point and closes after a few seconds later. 2

응용 프로그램: UnityL10nTool.exe Framework 버전: v4.0.30319 설명: 처리되지 않은 예외로 인해 프로세스가 종료되었습니다. 예외 정보:System.AccessViolationException 위치: .UnityL10nToolCpp.ProcessResourceAndMonoManger(UnityL10nToolCpp*) 위치: UnityL10nToolCppCLI.UnityL10nToolCppManaged.ProcessResourceAndMonoManger() 위치: UnityL10nToolCShop.ProjectConfig.LoadUnityL10nTool_DoWork(System.Object, System.ComponentModel.DoWorkEventArgs) 위치: System.ComponentModel.BackgroundWorker.OnDoWork(System.ComponentModel.DoWorkEventArgs) 위치: System.ComponentModel.BackgroundWorker.WorkerThreadStart(System.Object) 위치: System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr, System.Object[], System.Object, System.Object[] ByRef) 위치: System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessageSink) 위치: System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(System.Object) 위치: System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object) 위치: System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 위치: System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 위치: System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 위치: System.Threading.ThreadPoolWorkQueue.Dispatch() 위치: System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

오류 있는 응용 프로그램 이름: UnityL10nTool.exe, 버전: 0.1.1.0, 타임스탬프: 0xb6cb27a8 오류 있는 모듈 이름: AssetsTools.dll, 버전: 0.0.0.0, 타임스탬프: 0x5b44e9ae 예외 코드: 0xc0000005 오류 오프셋: 0x00012ff0 오류 있는 프로세스 ID: 0x8b8 오류 있는 응용 프로그램 시작 시간: 0x01d47c48d9a1af6b 오류 있는 응용 프로그램 경로: C:\Users[Username]\Desktop\UnityL10nTool_v0.1.1\UnityL10nTool.exe 오류 있는 모듈 경로: C:\Users[Username]\Desktop\UnityL10nTool_v0.1.1\AssetsTools.dll 보고서 ID: 0fcb5a47-7109-459d-8f39-d88e8ca1504b 오류 있는 패키지 전체 이름: 오류 있는 패키지에 상대적인 응용 프로그램 ID:

Gnbrkm41 commented 5 years ago

FYI: Running Windows 10 Home (Korean) on i7-8700 processor with 16GB RAM.

Gnbrkm41 commented 5 years ago

Tried running with administrator privilege as well, doesn't look like that's the case.

Gnbrkm41 commented 5 years ago

May be a problem with that specific game perhaps, as it works fine with an empty Unity2D project apparently?

Gnbrkm41 commented 5 years ago

By the way, it also somehow crashes if I click that button marked with red circle with an empty Unity2D project as well 3

응용 프로그램: UnityL10nTool.exe Framework 버전: v4.0.30319 설명: 처리되지 않은 예외로 인해 프로세스가 종료되었습니다. 예외 정보:System.NullReferenceException 위치: UnityL10nToolCShop.ProjectConfig.Button_Click(System.Object, System.Windows.RoutedEventArgs) 위치: System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 위치: System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 위치: System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) 위치: System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs) 위치: System.Windows.Controls.Primitives.ButtonBase.OnClick() 위치: System.Windows.Controls.Button.OnClick() 위치: System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs) 위치: System.Windows.UIElement.OnMouseLeftButtonUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs) 위치: System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object) 위치: System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) 위치: System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 위치: System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 위치: System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject, System.Windows.RoutedEventArgs, System.Windows.RoutedEvent) 위치: System.Windows.UIElement.OnMouseUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs) 위치: System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object) 위치: System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) 위치: System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 위치: System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 위치: System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) 위치: System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs) 위치: System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean) 위치: System.Windows.Input.InputManager.ProcessStagingArea() 위치: System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs) 위치: System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport) 위치: System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawMouseActions, Int32, Int32, Int32) 위치: System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef) 위치: System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 위치: MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 위치: MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) 위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 위치: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 위치: System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) 위치: MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) 위치: MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) 위치: System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) 위치: System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) 위치: System.Windows.Application.RunDispatcher(System.Object) 위치: System.Windows.Application.RunInternal(System.Windows.Window) 위치: System.Windows.Application.Run(System.Windows.Window) 위치: System.Windows.Application.Run() 위치: UnityL10nToolCShop.App.Main()

dmc31a42 commented 5 years ago

일단 두번째 오류는, 검색된 에셋을 클릭하고 설정이 다 끝나면Add를 눌러서 아래쪽에 다된거로 추가해야하는데 항목이 아무것도 없는 상태에서 누를수있게 짜놔서입니다. 첫번째꺼는 그 게임의 에셋의 클래스 형식을 불러오다가 오류난거같은데 이 오류는 그 게임으로 테스트하면서 오류를 잡을 수 밖에 없는데 게임명이 가려져있어서 바로 확인은 힘들 것 같습니다. 게임명을 가린 특별한 이유가 있으신가요? ps. 제가 설명서도 좀 갖추고 예외처리도 빡세게 해야하는데 능력부족이라 부족한 부분이 많네요...

Gnbrkm41 commented 5 years ago

@dmc31a42 좀 그런 겜이에요(...)

Gnbrkm41 commented 5 years ago

그리고 혹시 예외 발생시 에러 로그같은 걸 따로 저장하게 할 순 없나요? 발생 시 아무것도 안 알려주고 그냥 툭 꺼져버려서 이벤트 뷰어로 들어가서 확인해야 하더라고요.

dmc31a42 commented 5 years ago

일단 로그부분은 바로 적용해볼께요. C++ C#과 래퍼로 구현한 앱이라 C++에서 예외뜨면 그냥 죽어버립니다.

dmc31a42 commented 5 years ago

일단 실행자체가 안되는 부분만 1시간이내로 적용해서 임시버전을 만들어두겠습니다

dmc31a42 commented 5 years ago

개인적으로라도(제 메일이나 1:1 메세지기능) 알려주실 수 없다면 로그부분으로 최대한 분석해보도록하겠습니다

Gnbrkm41 commented 5 years ago

@dmc31a42 깃헙에 1:1 메세지가 있었나요?

dmc31a42 commented 5 years ago

@Gnbrkm41 디스코드, 스팀같은 타 플랫폼의 1:1 채팅을 이야기한 것이었습니다.

dmc31a42 commented 5 years ago

@Gnbrkm41 AccessViolationException 예외는 .Net 에서는 기본적으로는 잡을 수 없는 에러라 합니다. 그래서 예외창 띄우지도 않고 그냥 종료 된 것이구요. 일단은 이 예외를 잡는 옵션을 켜놨는데 C++안에서는 try catch를 못하고 AccessViolationException 말고는 상세한 정보는 띄우지 않을 것 같습니다. 일단 v0.1.2 버전으로 예외가 발생했던 ProcessResourceAndMonoManger에 TRACE를 기록하게 해두었습니다. 한번 돌려보시고 로그파일만 전달해주시면 감사하겠습니다. https://github.com/dmc31a42/UnityL10nTool/releases/latest

Gnbrkm41 commented 5 years ago

(T) 20181116:022706949661:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(232): UnityL10nToolCpp::ProcessResourceAndMonoManger() start (T) 20181116:022706952653:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(241): dependencyCount==5 (T) 20181116:022706953650:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(244): dependencyAssetsPath == library/unity default resources (T) 20181116:022706955644:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(245): i==0 (T) 20181116:022706956642:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(244): dependencyAssetsPath == resources/unity_builtin_extra (T) 20181116:022706958637:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(245): i==1 (T) 20181116:022706958637:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(244): dependencyAssetsPath == resources.assets (T) 20181116:022706959634:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(245): i==2 (T) 20181116:022706960631:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(244): dependencyAssetsPath == globalgamemanagers.assets (T) 20181116:022706961629:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(245): i==3 (T) 20181116:022706962626:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(244): dependencyAssetsPath == sharedassets0.assets (T) 20181116:022706963624:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(245): i==4 (T) 20181116:022706963624:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(250): ResourceManagerClassId == 147 (T) 20181116:022706964621:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(252): MonoManagerClassId == 116 (T) 20181116:022706965618:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(254): AssetSearchCount == 2 (T) 20181116:022706966615:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(255): globalgamemanagersTable->assetFileInfoCount == 20 (T) 20181116:022706967613:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 0 (T) 20181116:022706967613:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 129 (T) 20181116:022706968610:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 1 (T) 20181116:022706969608:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 13 (T) 20181116:022706969608:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 2 (T) 20181116:022706970605:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 78 (T) 20181116:022706971602:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 3 (T) 20181116:022706971602:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 11 (T) 20181116:022706972599:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 4 (T) 20181116:022706973596:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 94 (T) 20181116:022706974594:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(259): i == 5 (T) 20181116:022706974594:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(264): classId == 116 (T) 20181116:022706981575:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(314): m_ScriptsArrayATVF->GetChildrenCount() == 789 (T) 20181116:022706982573:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(318): i: 0 m_FileID == 0, m_PathID == 0 (T) 20181116:022706983570:09324:UnityL10nToolCpp.cpp:UnityL10nToolCpp::ProcessResourceAndMonoManger(320): assetsName ==

마지막 줄은 잘린 게 아니라 그냥 저렇게 문서가 끝납니다. 두번 실행해봤는데 동일합니다.

Gnbrkm41 commented 5 years ago

혹시 디스코드 태그 받아볼 수 있을까요?

dmc31a42 commented 5 years ago

nakwonelec#1553 입니다

dmc31a42 commented 5 years ago

무슨문제인지는 확인했습니다. 퇴근하고나서 수정하거나 중간에 시간되면 수정하겠습니다.

dmc31a42 commented 5 years ago

일단 해당 문제를 수정한 0.1.3 버전을 업데이트하였습니다. 확인해보시고 이상있으면 다시 이야기해주세요.

Gnbrkm41 commented 5 years ago

0.1.3에서 문제 없이 열리는 걸로 보입니다. 감사합니다.