diff --git a/core/java/android/content/res/TypedArray.java b/core/java/android/content/res/TypedArray.java
index f0c3f2d..8bcd5d1 100644
--- a/core/java/android/content/res/TypedArray.java
+++ b/core/java/android/content/res/TypedArray.java
@@ -160,7 +160,6 @@
 
         final TypedValue v = mValue;
         if (getValueAt(index, v)) {
-            StrictMode.noteResourceMismatch(v);
             return v.coerceToString();
         }
 
@@ -183,24 +182,6 @@
      */
     @Nullable
     public String getString(int index) {
-        return getString(index, true);
-    }
-
-    /**
-     * Returns a string representation of the value at the given index,
-     * optionally throwing a resource mismatch strict mode violation if the
-     * value must be coerced to a string.
-     *
-     * @param index the index of the attribute to retrieve
-     * @param strict {@code true} to throw a strict mode violation for string
-     *               coercion, {@code false} otherwise
-     * @return a string representation of the value at the given index, or
-     *         {@code null} if the resource could not be coerced to a string
-     * @see StrictMode#noteResourceMismatch(Object)
-     * @hide Used internally for view attribute inspection.
-     */
-    @Nullable
-    public String getString(int index, boolean strict) {
         if (mRecycled) {
             throw new RuntimeException("Cannot make calls to a recycled instance!");
         }
@@ -216,9 +197,6 @@
 
         final TypedValue v = mValue;
         if (getValueAt(index, v)) {
-            if (strict) {
-                StrictMode.noteResourceMismatch(v);
-            }
             final CharSequence cs = v.coerceToString();
             return cs != null ? cs.toString() : null;
         }
@@ -292,7 +270,6 @@
 
         final TypedValue v = mValue;
         if (getValueAt(index, v)) {
-            StrictMode.noteResourceMismatch(v);
             final CharSequence cs = v.coerceToString();
             return cs != null ? cs.toString() : null;
         }
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 3e621b1..3b1587a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4510,7 +4510,7 @@
             }
 
             attributes[i] = resourceName;
-            attributes[i + 1] = t.getString(index, false);
+            attributes[i + 1] = t.getString(index);
             i += 2;
         }
 
