Этот вопрос меня тоже беспокоил; Я обнаружил, что предупреждения logcat поступают от android:defaultValue
, а не от <item>
записей в массиве. Вы можете разрешить эти сообщения, создав строковые записи в файле xml (я использую /xml/constants.xml, но соглашение об именовании зависит от вас и не имеет значения) следующим образом:
<resources>
<string name="someValueA">12345</string>
<string name="someValueB">0</string>
<string name="someValueC">6789</string>
</resources>
Даже если эти значения являются целыми числами, так как вы объявляете их как строки, Android считает их строками, поэтому предупреждение logcat не генерируется.
В вашем коде укажите @string/someValueA
или R.string.someValueA
(или B, или C и т. Д.) В зависимости от того, где вам нужно поместить эти значения. В случае ListPreference
в XML-файле вы должны использовать что-то вроде этого:
<ListPreference
android:defaultValue="@string/someValueA"
android:dialogTitle="Some dialog title"
android:entries="@array/someNamesA"
android:entryValues="@array/someValuesA"
android:key="some_preference"
android:summary="Your summary text"
android:title="Some Title" />
Как только вы найдете записи, которые вызывают проблему, не страшно решить ее. Преобразование значений «d» в сообщениях logcat из шестнадцатеричного в десятичное должно указывать вам правильное направление. Например, 0x5a0 - 1440, поэтому вы сможете определить, где вы использовали значение 1440 в своем коде.