Shortly after releasing version 2.1.0 of Beautiful HD Wallpapers for Android, multiple reviews came in reporting blank white images. Every affected device turned out to be a low-resolution ldpi or mdpi handset — typically older budget phones.
The Rork Max-generated native Android code worked perfectly in Android Studio and on local emulators. The problem only appeared once the app was live on the Play Store.
What Was Actually Happening
The Play Store uses density APK splits to reduce download sizes. When you publish an Android App Bundle, Google Play generates separate APKs for each screen density (ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) and delivers only the relevant one to each device.
This optimization has an unexpected interaction with the drawable-nodpi/ folder.
drawable-nodpi/ is designed to hold resources that should be delivered to every device regardless of density — watermark images, icon assets, anything you don't want scaled. However, when density splits are active, low-density device APKs can fail to pick up files stored exclusively in drawable-nodpi/.
Specifically, if an image exists only in drawable-nodpi/ and not in any density-specific folder, Play Store's split logic can misidentify it as having no applicable resource for that density bucket and exclude it from delivery.
Why This Hits Rork Max Apps in Particular
Rork Max typically places images in res/drawable/ or res/drawable-xxhdpi/ — a high-resolution-first approach that makes sense for most scenarios. Problems arise when developers manually move certain assets (logos, placeholders, dividers) into drawable-nodpi/ to prevent scaling.
In my case, I moved a placeholder image and some ad-separator assets into drawable-nodpi/ after Rork Max generated the initial project. Local emulators showed no issues because Android Studio doesn't simulate the Play Store's density split behavior. The bug only surfaced after publishing.
After 12 years of building apps — with over 50 million cumulative downloads across my portfolio — I still occasionally run into Play Store delivery behaviors that don't match local testing. The density split edge case is one of the trickier ones.
Three Ways to Fix It
Option 1: Move assets back to drawable/
The simplest fix. If density-dependent scaling is acceptable for the asset, move it back to the standard drawable/ folder.
<!-- Before: vulnerable to density split issues -->
res/
drawable-nodpi/
placeholder.png ← missing on ldpi devices
divider_asset.png ← same issue
<!-- After: delivered to all densities -->
res/
drawable/
placeholder.png
divider_asset.pngOption 2: Disable density splits in build.gradle
If reliable delivery matters more than APK size, you can turn off density splitting entirely.
// app/build.gradle.kts (App Bundle)
android {
bundle {
density {
enableSplit = false
}
}
}For legacy APK format, use the splits block instead:
// Legacy APK format
android {
splits {
density {
isEnable = false
}
}
}Option 3: Duplicate assets across density folders
If you want to keep density splitting active while using drawable-nodpi/-style assets, duplicate the file into each density bucket.
res/
drawable-ldpi/placeholder.png
drawable-mdpi/placeholder.png
drawable-hdpi/placeholder.png
drawable-xhdpi/placeholder.png
drawable-xxhdpi/placeholder.png
drawable-xxxhdpi/placeholder.png
More maintenance overhead, but it keeps your bundle sizes small while guaranteeing delivery across all devices.
Pre-Launch Checklist for Rork Max Android Projects
Before publishing any Rork Max-generated Android app, run this check in your project root:
# Find all images in drawable-nodpi
find . -path "*/res/drawable-nodpi/*" \( -name "*.png" -o -name "*.webp" -o -name "*.svg" \)If files appear, decide which of the three options above applies. Text resources (strings.xml, AndroidManifest.xml) are not affected — this only applies to image assets (PNG, WebP, SVG, 9-patch).
The Outcome
The blank-image reports that appeared in v2.0.0 reviews were fully resolved in v2.1.0 by moving three files from drawable-nodpi/ back to drawable/. No similar reports since.
Rork Max generates high-quality native Android code that's often production-ready as-is. But Play Store's internal optimization logic — density splits, language splits, ABI splits — introduces behavior that doesn't show up in local testing. Building a habit of testing on low-spec API 21–23 devices before every release is worth the extra step.
If you're hitting blank images on older Android devices after a Play Store release, check drawable-nodpi/ first.