diff --git a/plugins/android/src/org/jetbrains/android/intentions/AndroidAddStringResourceAction.java b/plugins/android/src/org/jetbrains/android/intentions/AndroidAddStringResourceAction.java index 428c40d72d73..47d47568c64e 100644 --- a/plugins/android/src/org/jetbrains/android/intentions/AndroidAddStringResourceAction.java +++ b/plugins/android/src/org/jetbrains/android/intentions/AndroidAddStringResourceAction.java @@ -184,7 +184,7 @@ public class AndroidAddStringResourceAction extends AbstractIntentionAction impl final AndroidFacet facet = AndroidFacet.getInstance(file); assert facet != null; - value = value.replace("'", "\\'").replace("\"", "\\\""); + value = AndroidResourceUtil.normalizeXmlResourceValue(value); final String aPackage = getPackage(facet); if (aPackage == null) { diff --git a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleBuilder.java b/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleBuilder.java index 8d98f268d299..525c75c81bd5 100644 --- a/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleBuilder.java +++ b/plugins/android/src/org/jetbrains/android/newProject/AndroidModuleBuilder.java @@ -67,6 +67,7 @@ import org.jetbrains.android.sdk.AndroidPlatform; import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.android.util.AndroidCommonUtils; +import org.jetbrains.android.util.AndroidResourceUtil; import org.jetbrains.android.util.AndroidUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -418,11 +419,13 @@ public class AndroidModuleBuilder extends JavaModuleBuilder { } } + final String normalizedAppName = AndroidResourceUtil.normalizeXmlResourceValue(myApplicationName); + if (appNameResElement == null) { - manager.addValueResource("string", appNameResource, myApplicationName); + manager.addValueResource("string", appNameResource, normalizedAppName); } else { - appNameResElement.setStringValue(myApplicationName); + appNameResElement.setStringValue(normalizedAppName); } final Manifest manifest = facet.getManifest(); diff --git a/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java b/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java index 53e348ad7f02..602bff3ea171 100644 --- a/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java +++ b/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java @@ -60,6 +60,11 @@ public class AndroidResourceUtil { private AndroidResourceUtil() { } + @NotNull + public static String normalizeXmlResourceValue(@NotNull String value) { + return value.replace("'", "\\'").replace("\"", "\\\""); + } + static { REFERRABLE_RESOURCE_TYPES.addAll(Arrays.asList(ResourceType.values())); REFERRABLE_RESOURCE_TYPES.remove(ResourceType.ATTR);