My tentative conclusion is that this is something - I'm not sure what - to do with the API level. Android 8 is API 26, which is the version that allowed fonts to be added as resources. There is, of course, the compatibility library which allows older versions to pull off the same trick, and elsewhere in the app I do indeed use custom fonts, with no issues on Android 6 devices, including the API 23 one I'm testing with here.
I've tried renaming the font file to shorten it, in case that was the issue; again no difference, and exactly the same error - and in any case, the other custom fonts have long names, including hyphens.
So, my hypothesis is that, while the support tools allow for the use of standard fonts as resources on older API versions, there is something that prevents a non-standard font, like this emoji font, from being loaded on those versions. I don't know what, exactly, that issue is, or if it's possible to work round it. But for the time being I'm going with the simple solution of checking the device api level, and only using the joypixels font if >= 26