Ok I\'m looking right past something here..
Every time I\'m in my app and I change activities, logcat reports series of warnings:
02-04 14:42:36.524:
Check to see if you don't have:-
<TextView android:text="@+id/labelText"/>
in your resource file.
I've discovered that this warning is also outputted when specifying a plurals string from a widget that requires parameters.
For instance:
<plurals name="song_count">
<item quantity="one">%d song in playlist</item>
<item quantity="other">%d songs in playlist</item>
</plurals>
The warning will appear when inflating an activity that contains a widget referencing it:
<TextView
android:id="@+id/tv_total_songs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@plurals/song_count" />
You no doubt replace the string after inflating the views to set the correct parameters, e.g.:
playlistSongCount.setText(
getResources().getQuantityString(
R.plurals.song_count,
songCount,
songCount));
The obvious solution here is to remove the android:text attribute from the layout as it has no purpose.
Problem in android:text="@+id/fooText
Try change in your .xml this:
<TextView
android:id="@+id/foo"
android:text="@+id/fooText"/>
To this:
<TextView
android:id="@+id/foo"
android:text=""/>
You are using a bool resource where a string is expected.
You can find which resource is being used incorrectly by opening your generated R.java file and searching for the resource IDs from the logcat message:
0x7f08002b
0x7f08002c
0x7f08002d
All three should be from your bool.xml file (the "t=0x12" in the warning message means the resources are TYPE_INT_BOOLEAN).
Then, find where those resource IDs are being used in your project (probably a layout xml, but could be anywhere) and make sure the types match.
Here's an example of a TextView that would generate that log message. If in my res/values/bool.xml I have:
<resources>
<bool name="foo_flag">false</bool>
</resources>
I can incorrectly refer to it from a a layout xml file:
<TextView android:id="@+id/foo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@bool/foo_flag"></TextView>
When I run that app, I'll get the warning message since "text" expects a string resource, not a bool (my app appears as expected though since the flag is converted to the string "false").
Updated for Android Gradle 4.X:
As of sometime by version 4.0.1 of the Android grade plugin this has changed. An R.java file is no longer generated. Instead An R.txt file is generated located somewhere like:
build/intermediates/runtime_symbol_list/{variant}/R.txt
In my case the problem was in ListPreference default value. Even if you type it as String (for example "10") it will be interpreted as int and then converted to String and thus complaining.
For example, this will give a warning:
<ListPreference
android:defaultValue="10"
...
/>
but this will not:
<ListPreference
android:defaultValue="@string/ten"
...
/>
and define @string/ten in strings.xml as:
<string name="ten" translatable="false">10</string>
Dumb, but it gets rid of the warning.
These warnings only occurred when a certain developer option was enabled.
Device Settings > Developer options > Disable 'Enable view attribute inspection'