2014-04-30 19 views

Odpowiedz

76

Poprawnym sposobem w Android Studio do wyłączenia tych ostrzeżeń jest p ress Alt + Enter na metody dającej metody 'yourFunction() nigdy nie jest używany ostrzeżenie, a wybierając odpowiedź

Suppress for methods annotated by 'butterknife.OnClick' 
+0

jak można tego cofnąć? –

+4

Możesz go cofnąć, edytując plik .idea/misc.xml. – datalost

+0

FYI, dodaje dokładnie to, co @codesparkle powiedział (testowane z AS 2.0). – seb

45

Wystarczy dodać adnotację:

@SuppressWarnings("unused") 

Właśnie tak:

@SuppressWarnings("unused") 
@OnClick(R.id.myButton) 
public void clickHandler() 
{ 
    // ... 
} 

moje osobiste preferencje (co uważam za dobre praktyki) jest dodanie komentarza z krótkim objaśnieniem :

@SuppressWarnings("unused") // it's actually used, just injected by Butter Knife 
+2

może być bardziej szczegółowe: @SuppressWarnings ({ "UnusedDeclaration"}) @SuppressWarnings ({ "UnusedParameters"}) – AndrewS

9

OSVALD jest na miejscu.

Jednakże, jeśli chcesz uniknąć tłumienia ostrzeżenia oddzielnie dla każdego rodzaju butterknife adnotacji, postępuj zgodnie z jego instrukcjami, a następnie otworzyć .idea/misc.xml i znaleźć ten rozdział:

<component name="EntryPointsManager"> 
    <entry_points version="2.0" /> 
    <list size="1"> 
    <item index="0" class="java.lang.String" itemvalue="butterknife.OnClick" /> 
    </list> 
</component> 

czym, po prostu zastąpić butterknife.OnClick z butterknife.*.

Od tej chwili wszystkie wstrzykiwane programy do obsługi zdarzeń będą unikać ostrzeżenia.

+0

Nieźle, ale myślę, że zwykle nie przypisujemy plików '.idea' do repozytorium, więc każdy programista musi to zrobić indywidualnie, podczas gdy Adnotacja działa automatycznie dla wszystkich, ponieważ jest integralną częścią kodu kodowego. –

+0

@KonradMorawski Obie metody zmieniają tylko pliki '.idea', więc masz taki sam problem w obie strony. To, co jest i nie jest przypisane do repozytorium, zależy całkowicie od tego, co zignorowane jest repozytorium. – Tom

+0

@Tom nie, SuppressWarnings to adnotacja używana bezpośrednio w plikach kodu –

2

Dodaj kolejną zależność dla kompilatora:

Gradle

dependencies { 
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' // new line 
    compile 'com.jakewharton:butterknife:8.4.0' // original library 
} 

ta jest zalecana na official website.

Pamiętaj o Kompilacja -> Przebuduj projekt, więc wygeneruje on użytek i sprawi, że ostrzeżenie zniknie.

+0

to powinna być teraz właściwa odpowiedź –