diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 44aaa43..77168f9 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1597,7 +1597,7 @@
 
 static status_t writeLayoutClasses(
     FILE* fp, const sp<AaptAssets>& assets,
-    const sp<AaptSymbols>& symbols, int indent, bool includePrivate, bool nonConstantId)
+    const sp<AaptSymbols>& symbols, int indent, bool includePrivate)
 {
     const char* indentStr = getIndentSpace(indent);
     if (!includePrivate) {
@@ -1612,14 +1612,6 @@
     indentStr = getIndentSpace(indent);
     bool hasErrors = false;
 
-    const char * id_array_format = nonConstantId ?
-            "%spublic static int[] %s = {\n%s" :
-            "%spublic static final int[] %s = {\n%s";
-
-    const char * id_array_index_format = nonConstantId ?
-            "%spublic static int %s_%s = %d;\n" :
-            "%spublic static final int %s_%s = %d;\n";
-
     size_t i;
     size_t N = symbols->getNestedSymbols().size();
     for (i=0; i<N; i++) {
@@ -1753,7 +1745,8 @@
         }
         
         fprintf(fp,
-                id_array_format,
+                "%spublic static final int[] %s = {\n"
+                "%s",
                 indentStr, nclassName.string(),
                 getIndentSpace(indent+1));
 
@@ -1847,7 +1840,7 @@
                     fprintf(fp, "%s@Deprecated\n", indentStr);
                 }
                 fprintf(fp,
-                        id_array_index_format,
+                        "%spublic static final int %s_%s = %d;\n",
                         indentStr, nclassName.string(),
                         String8(name).string(), (int)pos);
             }
@@ -2090,7 +2083,7 @@
     }
 
     if (styleableSymbols != NULL) {
-        err = writeLayoutClasses(fp, assets, styleableSymbols, indent, includePrivate, nonConstantId);
+        err = writeLayoutClasses(fp, assets, styleableSymbols, indent, includePrivate);
         if (err != NO_ERROR) {
             return err;
         }
