I think I found the issue:
scrollView = widget.newScrollView( { top = screenH \* .05, left = 0, width = screenW, height = screenH, --\<----- you had screenH \* 10 scrollWidth = screenW, scrollHeight = screenH \* 10, listener = scrollListener, hideBackground = false, backgroundColor = {0,0,0}, bottomPadding = 200, horizontalScrollDisabled = true } )
You’re making the scrollView 10X the screen size. Which means 90% of it’s off screen. The width and height are the size visible scroll area on screen. It doesn’t make sense to have the visible area of the scrollView bigger than/or off screen. The scrollWidth and scrollHeight can be bigger than the screen to hold your content that will scroll.
ScrollViews and tableViews have an automatic mask created to hide the content in the scrollView outside the visible viewport. When the mask is the same size as an iPhone 6 screen using your config.lua, it’s going to be 1024x2048 (Power of two rule) or 2 megabytes which is right at the texture limit size for Android. However when you make that mask 10X the size you end up with closer to a 20mb texture file which is probably okay on Desktop/Laptop computers since they have a ton of video card memory. Devices don’t have any where that amount of memory to play around with.
This explains why on some devices when we made it landscape (at least on iOS which has slightly higher texture limits) it worked on devices.
Simply cut the size of the scrollView down to at least the screen height and you should be good to go.
Rob