2016-01-26 2 views
25

Я просто пытался произвести подписанный APK для одного из моих проектов (я уже делал это раньше), но (возможно, так как обновление Android Studio), я получаюAndroidStudio отключить «ожидаемый ресурс типа строки»

Error:Error: Expected resource of type string [ResourceType]

Это потому, что я использую @BindString в нож для масла, которое генерируется во что-то вроде этого

target.settings = res.getString(2131230792); 

Как я могу сделать студии не обнаружить это как ошибку? Я пробовал поиск в настройках, но безуспешно.

+0

I «Я использую butterknife какое-то время, и это не появилось, пока я не начал возиться с ароматами продукта в моем файле gradle. – Chris

+0

У Android Studio никогда не заканчивается ситуация, которая вызывает головные боли разработчика. –

ответ

8

Сообщено on the GitHub project. Это будет исправлено в следующей версии ButterKnife.

Обходной указывается there, и добавить lint.xml файл на app модуля со следующим содержанием, чтобы игнорировать, что ошибки на *$$ViewBinder классов (те, что порождает нож для масла):

<issue id="ResourceType"> 
    <!-- Remove this when this is fixed: https://github.com/JakeWharton/butterknife/issues/338 --> 
    <ignore path="**/*$$ViewBinder.java" /> 
</issue> 
+1

Принятый ответ вслепую отключает все проверки lintType для вашего модуля, подвергая вашу кодовую базу потенциально большему количеству ошибок, в то время как этот ответ специально нацелен на сгенерированные классы, которые вызывают проблему. Вот почему я предпочитаю этот ответ. –

63

Ответ на это: отключить правило пуха в вашем build.gradle

android { 
    lintOptions { 
    disable "ResourceType" 
    } 
} 

Edit: Это может произойти, в частности, при переходе от Затмения в Android Studio.

0

I имеет подобная проблема. с методом getString. Оказалось, что я пытался получить строковое значение не из strings.xml, а из ids.xml, потому что я получал его с getString (R.id.MYSTRING), когда это должно быть R.string.MYSTRING

2

Возможно лучшее решение - временно отключить ошибку/предупреждение, используя @SuppressLint("ResourceType") непосредственно перед определением метода.

+0

Добро пожаловать в StackOverflow! Проверьте [ответ] за советы по предоставлению хороших ответов на вопросы здесь. В частности, существуют способы форматирования фрагментов кода, поэтому они отображаются как код, а не простой текст. Кроме того, в целом лучше всего сосредоточиться на новых вопросах без хорошо принятых ответов. – Kateract

0

Это для некоторых просмотров одним и тем же идентификатором, и вы пытаетесь изменить какое-либо свойство для одного из них. При попытке создать APK андроид найти confilict о resours ид

Чтобы решить, что

лучший способ найти код и попытаться решить, что из другого пути к вашей цели

GOODLUCK

 Смежные вопросы

  • Нет связанных вопросов^_^