question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Android production build `MissingDefaultResource` lint error.

See original GitHub issue

When building Android app for production build I get this lint error. Its because generator builds only folders drawable-land-xxxx and drawable-port-xxx. There should be build also default drawable-xxxx folders I think.

Temporary solution is suppress this lint error adding this code to android/app/build.gradle

application {
....
 lintOptions{
   disable 'MissingDefaultResource'
 }
}

More info about lint error (source: http://tools.android.com/tips/lint-checks)

MissingDefaultResource

Summary: Missing Default

Priority: 6 / 10 Severity: Fatal Category: Correctness

If a resource is only defined in folders with qualifiers like -land or -en, and there is no default declaration in the base folder (layout or values etc), then the app will crash if that resource is accessed on a device where the device is in a configuration missing the given qualifier.

As a special case, drawables do not have to be specified in the base folder; if there is a match in a density folder (such as drawable-mdpi) that image will be used and scaled. Note however that if you only specify a drawable in a folder like drawable-en-hdpi, the app will crash in non-English locales.

There may be scenarios where you have a resource, such as a -fr drawable, which is only referenced from some other resource with the same qualifiers (such as a -fr style), which itself has safe fallbacks. However, this still makes it possible for somebody to accidentally reference the drawable and crash, so it is safer to create a default dummy fallback in the base folder. Alternatively, you can suppress the issue by adding tools:ignore=“MissingDefaultResource” on the element.

(This scenario frequently happens with string translations, where you might delete code and the corresponding resources, but forget to delete a translation. There is a dedicated issue id for that scenario, with the id ExtraTranslation.)

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:5
  • Comments:7

github_iconTop GitHub Comments

4reactions
jjchulacommented, Dec 25, 2018

That can be the solution.

Here’s what the doc say.

Providing the best device compatibility with resources … Likewise, if you provide different layout resources based on the screen orientation, you should pick one orientation as your default. For example, instead of providing layout resources in layout-land/ for landscape and layout-port/ for portrait, leave one as the default, such as layout/ for landscape and layout-port/ for portrait.

2reactions
nobady90commented, Feb 6, 2019

since I upgraded Android Studio I have the same problem 😦 To solve also I have inserted in build.gradle:

lintOptions{
    disable 'MissingDefaultResource'
}

Is this sufficient, or will there be problems with the App? Thanks!

Read more comments on GitHub >

github_iconTop Results From Across the Web

MissingDefaultResource: Missing Default - Google Samples
This is an error, and is also enforced at build time when supported by the build system. For Android this means it will...
Read more >
Android release build - MissingDefaultResource "error"
The build happens and Cordova obliges with the release apk in the platforms/android/app/build/outputs/apk/release folder as expected. However, ...
Read more >
Android production build `MissingDefaultResource` lint error. -
When building Android app for production build I get this lint error. Its because generator builds only folders drawable-land-xxxx and ...
Read more >
Not able to do production release build. Struggling a lot on this
Error Log: ... ionic cordova build android --prod --release ... match this qualifier [MissingDefaultResource]> Task :app:lintVitalRelease.
Read more >
Android Lint Checks - Android Studio Project Site
Gradle projects, this is only checked for non-debug (release) builds. ... Once the import is there you might get a lot of "confusing"...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found