EXC_BAD_ACCESS from Unity::Material::CreateMaterial When running simple app on iPhone.

Hi There,

This is my first foray into iPhone dev from Unity and its not going well. I’m getting a EXC_BAD_ACCESS error when I try to run my ap on my testing iPhone. It would be great if anyone can help me figure out what is doing this, I’ve seen other people having issues with UI Materials but nothing that fits this. It freezes and hangs at the Unity logo screen when I try to run this. If you want more info just let me know what you’d like to see. I’m running Unity 4.6.1f1 . It runs without complaint in the editor. I’m new to the iPhone debugging process so even if you could point me in the right direction it would be helpful. Thanks so much,

Dylan

Thread 1Queue : com.apple.main-thread (serial)
#0	0x0143e5f0 in Unity::Material::CreateMaterial(Shader&, int, bool) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Shaders/Material.cpp:280
#1	0x014971fc in UI::GetDefaultUIMaterial() at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/UI/Canvas.cpp:31
#2	0x0149dc98 in Canvas_CUSTOM_GetDefaultCanvasMaterial() at /Applications/buildAgent/work/d63dfc6385190b60/artifacts/iPhonePlayer-armv7Generated/UICanvasBindings.cpp:190
#3	0x006708a8 in m_wrapper_managed_to_native_UnityEngine_Canvas_GetDefaultCanvasMaterial at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.dll.s:67121
#4	0x00562f78 in m_UnityEngine_UI_Graphic_get_defaultGraphicMaterial at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:7929
#5	0x0056377c in m_19e at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:8211
#6	0x005637e8 in m_19f at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:8223
#7	0x0057dd7c in m_UnityEngine_UI_MaskableGraphic_get_material at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:17125
#8	0x005638ec in m_1a1 at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:8261
#9	0x005642a8 in m_UnityEngine_UI_Graphic_UpdateMaterial at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:8534
#10	0x00563e90 in m_UnityEngine_UI_Graphic_Rebuild_UnityEngine_UI_CanvasUpdate ()
#11	0x00560f54 in m_UnityEngine_UI_CanvasUpdateRegistry_PerformUpdate at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/UnityEngine.UI.dll.s:6827
#12	0x006709c8 in m_UnityEngine_Canvas_SendWillRenderCanvases ()
#13	0x00bd6e58 in m_4515 at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Libraries/mscorlib.dll.s:398737
#14	0x01872b64 in mono_jit_runtime_invoke ()
#15	0x01915da8 in mono_runtime_invoke ()
#16	0x01348d64 in scripting_method_invoke(ScriptingMethod*, MonoObject*, ScriptingArguments&, MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/Mono/ScriptingBackendApi_Mono.cpp:199
#17	0x013fa448 in ScriptingInvocation::Invoke(MonoException**, bool) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:128
#18	0x013fa3f8 in ScriptingInvocation::Invoke(MonoException**) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:113
#19	0x013fa37c in ScriptingInvocation::Invoke() at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Scripting/Backend/ScriptingInvocation.cpp:108
#20	0x0149af80 in UI::CanvasManager::WillRenderCanvases() at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/UI/CanvasManager.cpp:229
#21	0x0149b148 in UI::InitializeCanvasManager()::WillRenderCanvases::Forward() at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/UI/CanvasManager.cpp:242
#22	0x013baa10 in PlayerLoop(bool, bool, IHookEvent*) at /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Misc/Player.cpp:2016
#23	0x011bdc08 in UnityPlayerLoop at /Applications/buildAgent/work/d63dfc6385190b60/PlatformDependent/iPhonePlayer/LibEntryPoint.mm:239
#24	0x00d329b0 in -[UnityAppController(ViewHandling) showGameUI] at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Classes/UI/UnityAppController+ViewHandling.mm:158
#25	0x00d2f5d0 in -[UnityAppController startUnity:] at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Classes/UnityAppController.mm:93
#26	0x26673f98 in __NSFireDelayedPerform ()
#27	0x25934c86 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
#28	0x25934802 in __CFRunLoopDoTimer ()
#29	0x25932a52 in __CFRunLoopRun ()
#30	0x258803c0 in CFRunLoopRunSpecific ()
#31	0x258801d2 in CFRunLoopRunInMode ()
#32	0x2cc7e0a8 in GSEventRunModal ()
#33	0x28e8ffa0 in UIApplicationMain ()
#34	0x00047a94 in main at /Users/dylan/current_working/ARFishApp/Builds/iosBuild_0001-noAR/Classes/main.mm:35

Ok, I figured it out. Its actually a pretty simple solution, I just had an empty material in the UI panel and that won’t throw an error until you get to trying to run it on iOS. A warning would be nice but at least its a simple solution.

Maybe the you forget to point the default shader like the UIDefault.shader to loaded!!

I had this problem and traced it to using Unity’s built in Lucida font. Changed to Aerial and no problems. Using NGUI.

The old font simply broke everything else visually.