Why it works on your laptop and not in the app
The default file systems on Windows (NTFS) and macOS (APFS) are case-insensitive: ask for images/Logo.png and you get images/logo.png, no questions asked. Android is Linux underneath, and the asset storage inside an APK is case-sensitive: Logo.png and logo.png are two different names, and only one of them exists. The request for the other comes back as a 404.
So a site can pass every test you run on your own machine — including opening it in Chrome from disk — and still load inside the app with a missing logo, an unstyled page, or a blank screen if the file with the wrong case was the main script. This is the single most common cause of "some images are missing in my APK".
What the checker reports
- Wrong case — a file with that name exists, but with different capitalisation. Fixable automatically: the reference is rewritten to match the real file.
- Missing — no file of that name exists in any case. Either the file was never copied into the folder you zipped, or the link has a typo.
- Root path — the reference starts with
/. In the app your files are served from a sub-folder, so/css/app.csspoints outside it. Remove the leading slash (see the paths reference). - Backslash —
images\logo.pngis a Windows path, not a URL. Browsers on Windows sometimes forgive it; nothing else does.
What it reads
HTML attributes (src, href, srcset, poster, data-src), CSS url() and @import in stylesheets and <style> blocks, SVG links, and string literals in JavaScript that look like a relative path ending in a known asset extension (for example "sprites/Hero.png" passed to a game engine). Paths built at runtime by concatenation cannot be seen by any static scan — test those in the builder's preview.
References inside JavaScript that do not match any file are not reported as missing, because scripts are full of strings that merely look like paths. Case mismatches in scripts are reported, because a string that matches a real file except for its capitals is almost always a bug.
Preventing it
Name every file in lower case, with hyphens instead of spaces: hero-image.webp, not Hero Image.WEBP. It avoids this problem, the %20 problem and the "which extension did I use" problem in one habit.