2016-01-26 18 views
25

"risorsa di tipo stringa attesa" Ho solo cercato di generare apk firmato per uno dei miei progetti (ho già fatto prima), ma (forse da quando l'aggiornamento Android Studio) che sto ricevendoAndroid Studio disable

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

questo è perché sto utilizzando @BindString di butterknife, che viene generato in qualcosa di simile

target.settings = res.getString(2131230792); 

come posso fare in studio non rileva questo come errore? Ho provato a cercare nelle impostazioni, ma senza successo.

+0

I Ho usato Butterknife per un po 'ora, e questo non è apparso fino a quando non ho iniziato a scherzare con i sapori del prodotto nel mio file gradle. – Chris

+0

Android Studio non esaurisce mai roba che causa mal di testa agli sviluppatori –

risposta

8

Questo è segnalato on the GitHub project. Sarà risolto nella prossima versione di ButterKnife.

La soluzione è indicata there, ed è quello di aggiungere un file lint.xml sul modulo app con il seguente contenuto di ignorare che gli errori su *$$ViewBinder classi (quelle che butterknife genera):

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

La risposta accettata disattiva ciecamente tutti i controlli di lint ResourceType per il modulo, esponendo la base di codice a potenzialmente più bug, mentre questa risposta si rivolge in particolare alle classi generate che causano il problema. Questo è il motivo per cui preferisco questa risposta. –

63

Rispondere a questo è: disabilitare regola lint nel vostro build.gradle

android { 
    lintOptions { 
    disable "ResourceType" 
    } 
} 

Edit: questo può accadere in particolare quando la migrazione da Eclipse per Android Studio.

0

mi ha un problema simile con un metodo getString. Si è rivelato che stavo cercando di ottenere il valore stringa non da strings.xml ma da ids.xml, perché lo stavo ottenendo con getString (R.id.MYSTRING), quando dovrebbe essere R.string.MYSTRING

2

Forse una soluzione migliore è disabilitare temporaneamente l'errore/avviso utilizzando @SuppressLint("ResourceType") subito prima della definizione del metodo.

+0

Benvenuti in StackOverflow! Controlla [risposta] per suggerimenti su come dare risposte alle domande qui. In particolare ci sono modi per formattare gli snipe di codice in modo che vengano visualizzati come codice anziché come testo normale. Inoltre, in generale, è meglio concentrarsi sulle domande più recenti senza risposte accettate. – Kateract

0

questo è per alcune visualizzazioni con lo stesso id e si tenta di modificare alcune proprietà per uno di loro. Quando tenta di generare apk Android Trova qualche confilict circa resours id

per risolvere il

modo migliore trovare il codice e cercare di risolvere che da un altro modo per il vostro scopo

GoodLuck