Loading tools/aapt/Resource.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -426,7 +426,7 @@ static void checkForIds(const String8& path, ResXMLParser& parser) } } static void applyFileOverlay(const sp<AaptAssets>& assets, static bool applyFileOverlay(const sp<AaptAssets>& assets, const sp<ResourceTypeSet>& baseSet, const char *resType) { Loading @@ -449,7 +449,7 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, size_t overlayCount = overlaySet->size(); for (size_t overlayIndex=0; overlayIndex<overlayCount; overlayIndex++) { size_t baseIndex = baseSet->indexOfKey(overlaySet->keyAt(overlayIndex)); if (baseIndex != UNKNOWN_ERROR) { if (baseIndex < UNKNOWN_ERROR) { // look for same flavor. For a given file (strings.xml, for example) // there may be a locale specific or other flavors - we want to match // the same flavor. Loading @@ -475,9 +475,10 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, } } else { // this group doesn't exist (a file that's only in the overlay) // add it baseSet->add(overlaySet->keyAt(overlayIndex), overlaySet->valueAt(overlayIndex)); fprintf(stderr, "aapt: error: " "*** Resource file '%s' exists only in an overlay\n", overlaySet->keyAt(overlayIndex).string()); return false; } } // this overlay didn't have resources for this type Loading @@ -485,7 +486,7 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, // try next overlay overlay = overlay->getOverlay(); } return; return true; } void addTagAttribute(const sp<XMLNode>& node, const char* ns8, Loading Loading @@ -611,13 +612,15 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets) current = current->getOverlay(); } // apply the overlay files to the base set applyFileOverlay(assets, drawables, "drawable"); applyFileOverlay(assets, layouts, "layout"); applyFileOverlay(assets, anims, "anim"); applyFileOverlay(assets, xmls, "xml"); applyFileOverlay(assets, raws, "raw"); applyFileOverlay(assets, colors, "color"); applyFileOverlay(assets, menus, "menu"); if (!applyFileOverlay(assets, drawables, "drawable") || !applyFileOverlay(assets, layouts, "layout") || !applyFileOverlay(assets, anims, "anim") || !applyFileOverlay(assets, xmls, "xml") || !applyFileOverlay(assets, raws, "raw") || !applyFileOverlay(assets, colors, "color") || !applyFileOverlay(assets, menus, "menu")) { return UNKNOWN_ERROR; } bool hasErrors = false; Loading Loading
tools/aapt/Resource.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -426,7 +426,7 @@ static void checkForIds(const String8& path, ResXMLParser& parser) } } static void applyFileOverlay(const sp<AaptAssets>& assets, static bool applyFileOverlay(const sp<AaptAssets>& assets, const sp<ResourceTypeSet>& baseSet, const char *resType) { Loading @@ -449,7 +449,7 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, size_t overlayCount = overlaySet->size(); for (size_t overlayIndex=0; overlayIndex<overlayCount; overlayIndex++) { size_t baseIndex = baseSet->indexOfKey(overlaySet->keyAt(overlayIndex)); if (baseIndex != UNKNOWN_ERROR) { if (baseIndex < UNKNOWN_ERROR) { // look for same flavor. For a given file (strings.xml, for example) // there may be a locale specific or other flavors - we want to match // the same flavor. Loading @@ -475,9 +475,10 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, } } else { // this group doesn't exist (a file that's only in the overlay) // add it baseSet->add(overlaySet->keyAt(overlayIndex), overlaySet->valueAt(overlayIndex)); fprintf(stderr, "aapt: error: " "*** Resource file '%s' exists only in an overlay\n", overlaySet->keyAt(overlayIndex).string()); return false; } } // this overlay didn't have resources for this type Loading @@ -485,7 +486,7 @@ static void applyFileOverlay(const sp<AaptAssets>& assets, // try next overlay overlay = overlay->getOverlay(); } return; return true; } void addTagAttribute(const sp<XMLNode>& node, const char* ns8, Loading Loading @@ -611,13 +612,15 @@ status_t buildResources(Bundle* bundle, const sp<AaptAssets>& assets) current = current->getOverlay(); } // apply the overlay files to the base set applyFileOverlay(assets, drawables, "drawable"); applyFileOverlay(assets, layouts, "layout"); applyFileOverlay(assets, anims, "anim"); applyFileOverlay(assets, xmls, "xml"); applyFileOverlay(assets, raws, "raw"); applyFileOverlay(assets, colors, "color"); applyFileOverlay(assets, menus, "menu"); if (!applyFileOverlay(assets, drawables, "drawable") || !applyFileOverlay(assets, layouts, "layout") || !applyFileOverlay(assets, anims, "anim") || !applyFileOverlay(assets, xmls, "xml") || !applyFileOverlay(assets, raws, "raw") || !applyFileOverlay(assets, colors, "color") || !applyFileOverlay(assets, menus, "menu")) { return UNKNOWN_ERROR; } bool hasErrors = false; Loading