2015-07-21 22 views
6

Próbuję użyć this library project, więc starałem się uruchomić aplikację próbki (w /app/source/main/ w linku GitHub), w MainActivity.java, otrzymuję błąd na importImport butterknife.InjectView nie może zostać rozwiązany

import butterknife.InjectView; 

a także w MainActivity.java i VerticalLinearRecyclerViewSample.java, przy każdym wystąpieniu z @InjectView(...) adnotacji, pojawia się następujący błąd:

InjectView cannot be resolved to a type 

Więc wh co powinienem zrobić w tej sprawie?


co starałem:

Widziałem this question. Nie działa dla mnie, zostawił tam komentarz.

Mam followed these steps to include the Butter Knife library do kroku 3. O kroku 4, "Upewnij się, że .apt_generated/folder jest w katalogu głównym projektu ..." - ten projekt nie ma żadnego folderu o nazwie .apt-generated lub czegoś w folderze głównym projektu.


Uwaga: faktycznie używać Eclipse, a projekt na Github jest dla Android Studio, więc stworzyłem nowy projekt w Eclipse i kopiować pojedyncze pliki z pobranego projektu Android Studio. Mam nadzieję, że to nie ma znaczenia.

+3

Którą wersję ButterKnife używasz? Najnowsza wersja ma powiązanie zamiast InjectView. Wersja wcześniej, używa ButterKnife.inject (this) do wstrzykiwania widoku. Ponadto Eclipse nie jest już obsługiwany, zacznij korzystać z Android Studio. – Sharj

+0

@Sharj v7.0.1 pobrany z tej strony. "@ Bind" działa, dziękuję bardzo. Jeśli możesz opublikować to jako odpowiedź, mogę to zaakceptować. – Solace

+0

wysłana jako odpowiedź. – Sharj

Odpowiedz

23

Podziękowania dla @Sharj za odpowiedź jako pierwsza.

Wersja 7.0.0 produktu Butterknife zawierała przełomową zmianę nazwy czasowników z adnotacjami. Jest to podświetlone w dzienniku zmian i odzwierciedlone na stronie internetowej.

Version 7.0.0 *(2015-06-27)* 
---------------------------- 

* `@Bind` replaces `@InjectView` and `@InjectViews`. 
* `ButterKnife.bind` and `ButterKnife.unbind` replaces `ButterKnife.inject` 
    and `ButterKnife.reset`, respectively. 
... 

https://github.com/JakeWharton/butterknife/blob/f65dc849d80f6761d1b4a475626c568b2de883d9/CHANGELOG.md

+0

poor Object oriented ... zmiana appnotacji łamania adnotacji, jeśli została wykonana zautomatyzowana kompilacja – anshulkatta

+0

Późna odpowiedź tutaj, ale zmiana w API została wykonana jako część głównej wersji 7.x.x, więc jest dozwolona w wersji semantycznej. http://semver.org/ – Derek

6

Najnowsza wersja ma bind zamiast InjectView. Wcześniejsza wersja używa ButterKnife.inject(this) do wstrzykiwania widoku. Ponadto Eclipse nie jest już obsługiwany, zacznij korzystać z Android Studio.

+2

Witam, naprawdę chciałem zaakceptować twoją odpowiedź. Ale odpowiedź Dereka (w której akredytowali twoją odpowiedź) jest bardziej opisowa i nieco bardziej wyczerpująca. Poprosiłem więc o wymianę informacji na temat tego, który z nich zaakceptować, i otrzymałem radę, że powinienem zaakceptować ten, który będzie bardziej pomocny dla społeczności. Mogłem więc tylko głosować na twoją odpowiedź. Zrobiłabym więcej, gdybym mogła. Dziękuje za odpowiadanie. – Solace

+1

Rewizja za uczciwość! :) –

+0

Hej. Nadal pracuję nad Eclipse. Czy jest tam jakiś sposób importowania ButterKnife? – Zen

Powiązane problemy