저는 게임을 진행하고 있으며 레벨 정보를 JSON 형식으로 저장하고 있습니다. 이 수준은 매우 큰, 그래서 우리는 그냥 일반 C 번호에 저장하기 위해 전환 : MonoTouch AOT 컴파일러 - 대용량 메소드가 실패합니다.
- 그 "가 새로운"표준 속성 inititalizers 우리 오브젝트 트리
예 :이 방법을 제외하고
private OurObject Autogenerated_Object1()
{
return new OurObject { Name = "Object1", X = 1, Y = 2, Width = 200, Height = 100 };
}
이 매우 크고 목록을 중첩 한/어법 다른 물체의 양자리 등이 있습니다.
이렇게하면 2-3 초에서 몇 초 (Windows의 경우)까지 수준을로드하는 속도가 빨라집니다. 우리의 데이터 크기는 JSON에 비해 IL을 컴파일 할 때 상당히 작습니다.
우리가 MonoTouch에 대한 MonoDevelop에서 다음을 컴파일 할 때 문제는, 우리가 얻을 : -v -v -v
와
mtouch exited with code 1
가 켜져, 우리는 오류 볼 수 있습니다
MONO_PATH=/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app /Developer/MonoTouch/usr/bin/arm-darwin-mono --aot=mtriple=armv7-darwin,full,static,asmonly,nodebug,outfile=/var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp54777849.tmp/monotouch.dll.7.s "/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/monotouch.dll"
AOT Compilation exited with code 134, command:
MONO_PATH=/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app /Developer/MonoTouch/usr/bin/arm-darwin-mono --aot=mtriple=armv7-darwin,full,static,asmonly,nodebug,outfile=/var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp54777849.tmp/DrawAStickmanCore.dll.7.s "/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/DrawAStickmanCore.dll"
Mono Ahead of Time compiler - compiling assembly /Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/DrawAStickmanCore.dll
* Assertion: should not be reached at ../../../../../mono/mono/mini/mini-arm.c:2758
를 제한이 있습니까 AOT 용으로 컴파일 할 때 메소드의 행 수? 이 문제를 해결하기 위해 mtouch
에 전달할 수있는 인수가 있습니까? 일부 파일은 정상적으로 작동하지만 오류의 원인이되는 파일은 3,000 줄 방법이 있습니다. 시뮬레이터에 대한 컴파일은 상관없이 잘 작동합니다.
이것은 아직 실험이므로 매우 미친 상황이라는 것을 알고 있습니다.
작은 레벨에서도 작동합니까? –
네, 더 작은 레벨에서 잘 작동합니다. 특정 덤불이나 나무를 추가하자마자 문제가 시작되고 시뮬레이터가 정상적으로 작동합니다. – jonathanpeppers
버그 보고서 작성 : – poupou