2016-01-26 46 views
25

我只是試圖生成APK簽署爲我的項目之一(我已經這樣做過),但是(也許因爲更新Android工作室)我得到AndroidStudio禁用「預期字符串類型的資源」

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

這是因爲我使用Butterknife的@BindString,即生成到類似的東西

target.settings = res.getString(2131230792); 

我怎樣才能讓工作室無法檢測到這是錯誤?我試過在設置中搜索,但沒有成功。

+0

我我一直在使用butterknife一段時間,直到我開始在我的gradle文件中搞亂產品口味時纔出現這種情況。 – Chris

+0

Android Studio永遠不會導致開發人員頭痛的東西耗盡 –

回答

8

這是報道的on the GitHub project。 它將在下一個版本的ButterKnife中修復。

解決方法是指示there,並且是添加lint.xml文件app模塊具有以下內容上忽略對*$$ViewBinder類(即ButterKnife產生的那些)錯誤:

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

接受的答案會盲目地關閉您模塊的所有ResourceType lint檢查,使您的代碼庫暴露於潛在的更多錯誤,而此答案專門針對導致問題的生成類。這就是爲什麼我更喜歡這個答案。 –

63

的回答是:在你的build.gradle禁用皮棉規則

android { 
    lintOptions { 
    disable "ResourceType" 
    } 
} 

編輯: 從Eclipse的移植到Android Studio時,這極有可能發生。

0

I具有類似的問題。用getString方法。原來我試圖從字符串中獲取字符串值不是來自strings.xml,而是來自ids.xml,因爲我用getString(R.id.MYSTRING)得到它,當它應該是R.string.MYSTRING

2

也許更好的解決方案是在方法定義之前使用@SuppressLint("ResourceType")臨時禁用錯誤/警告。

+0

歡迎來到StackOverflow!檢查[回答]提供有關在這裏提出問題的好答案的提示。具體來說,有些方法可以對代碼片段進行格式化,以便顯示爲代碼而不是純文本。另外,一般來說,最好把重點放在沒有被廣泛接受的答案的新問題上。 – Kateract

0

這是爲一些意見由相同的ID和你嘗試改變其中之一的一些財產。 當嘗試生成APK安卓找到resours ID一些confilict

爲了解決這個

更好的方式找到的代碼,並試圖解決從另一種方式來你的目的

好運

相關問題