Are there any error messages logged to the debug console?
It looks like you're calling a Main() function from inside the RunUserInterface() function. I think those two function names are mutually exclusive as entry points. It's possible that 4.8 has become more strict about that...?
Otherwise, it might be a scoping issue. I haven't tested it specifically, but it's possible that 4.8 limited scope in Brightscript like more traditional languages. Since you're declaring and setting the canvas object inside the if...then block, it may be going out of scope when you leave that block, before it's able to create the facade to keep the channel alive. Try declaring the canvas variable outside of the if...then block:
canvas = invalid
if displaySize.w = 1280 then
canvas = CreateObject("roImageCanvas")
.
.
.
end if
Alternatively, you could use manifest based splash screen...
http://blog.roku.com/developer/2012/02/ ... h-screens/
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)