Dodałem niektóre elementy interfejsu użytkownika do pliku main.xml w folderze res \ layout, a gdy próbuję uzyskać do nich dostęp poprzez wywołanie, R.layout.my_uielement
, element interfejsu, który utworzyłem, jest nie tam. Nawet jeśli dodaję nowy plik XML z elementami interfejsu użytkownika, nadal nie będzie on wyświetlany w klasie R.layout
. Sprawdziłem identyfikatory na nich i mają poprawny format (chyba): android:id="@+id/my_button"
. Jaki może być problem? Czy muszę najpierw skompilować kod?
UPDATE:
Próbowałem już adb kill-server
następnie adb start-server
. To nie pomaga. Próbowałem też R.id.my_uielement
, również się nie rejestruje.Plik R.java nie aktualizuje się z identyfikatorem elementu interfejsu użytkownika
Odpowiedz
To nie może być przypadek dla Ciebie, ale czasami kiedy używać coś z pakietu android.R (domyślnie android zasoby) i używam to w mojej klasie przed odniesieniem się do czegokolwiek z mojego własnego pakietu zasobów, Eclipse dodaje do mojego importu instrukcję import android.R;
. Spowoduje to konflikt z domyślnym zachowaniem niejawnie wyglądającym w zasobach twojego pakietu.
Sprawdź swoje instrukcje importowania dla import Android.R;
. Jeśli tam jest, usuń go. A jeśli używasz czegoś z Android.R, w pełni zakwalifikować go, gdy używasz go w kodzie.
Genialny! Chciałbym dać ci 100 głosów w górę: D Tak długo szukałem odpowiedzi. Dzięki! – marienke
Zastosowanie R.id.your_ui_element nie R.layout.your_element
To też nie działa. –
Zmierzyłem się również z tym problemem. R.java nie był ani generowany, ani aktualizowany.
Jeśli R.java nie jest wygenerowany podczas tworzenia projektu, uruchom swój "pusty" projekt. R.java z odniesieniami do zasobów zostanie wygenerowany automatycznie.
Jeśli R.java nie jest coraz aktualizowane, Sprawdź aktualizacje w Pomoc -> Sprawdź aktualizacje w Eclipse i zaktualizuj SDK i ADT w razie potrzeby.
Pomogło mi to w połączeniu z projektem czyszczenia. –
@ IgorG. Cieszę się, że pomogło. Spędziłem 2 dni zanim natknąłem się na to pytanie na stackoverflow – Pramod
Czysty projekt działa dobrze. W Eclipse, jeśli zmienisz tylko niektóre komponenty xml, nie zawsze generuje nowy plik R. Czyszczenie to robi.
Tak działa, dzięki! – Signcodeindie
Dziękuję Ci, że to zadziałało. – Wak
Dzięki, to działało dla mnie. –
Po 2 dniach znalazłem sposób aby to naprawić ...
miałem zapisaną pół zrobić projekt w mojej poczty, więc kiedy R.java
zniknął i po prostu zastąpić go ze starym R.java
pliku, aby to naprawić wiele błędy, następnie wprowadzono niezbędne zmiany i zbudowałem projekt (zbudowałem go nie czysto) ... Nie wiem czy czyszczenie i kompilacja wykonuje tę samą pracę, czy nie .. ale za każdym razem czyściłem ją, R.java
używano, aby przejść do niewidzialności ...
Zauważyłem, że mój plik R.java nie zawsze jest prawidłowo aktualizowany, gdy dodaję elementy do pliku strings.xml lub w innym miejscu. Jeśli użyję nowej wartości dodałem jak R.string.newString faktyczna wartość całkowita może nadal wskazywać na R.string.oldString lub cokolwiek (wydaje się, że zazwyczaj jest to element znajdujący się bezpośrednio nad lub pod nowym elementem w pliku strings.xml, ale Na razie nie udało mi się ustalić wzoru).
Nie należy modyfikować pliku R.java, ale nie mówi nic o usunięciu go (nie, że widziałem, w każdym razie). Zauważyłem, że usunięcie R.java zwykle rozwiązuje moje problemy związane z zasobami, ponieważ Eclipse natychmiast ponownie generuje plik z prawidłowo przypisanymi wartościami całkowitymi.
Uwaga, jestem bardzo początkujący w Eclipse, więc może nie rozumiem konsekwencji usunięcia R.javy, ale wydaje mi się, że działa dobrze dla mnie.Jeśli to, co robię, jest bardzo złe, proszę dać mi znać.
Clean pracuje ponieważ budować projektu po czyszczeniu. Problem polega więc (przynajmniej w moim przypadku, ponieważ kilka dni wcześniej wyłączyłem Automatyczną Konstrukcję), że po dodaniu elementu lub czegoś w pliku .xml, Eclipse go nie buduje i nie może odświeżyć R.java.
Żadna z nich nie zadziałała dla mnie! Jedyny sposób, że mogę uzyskać dostęp do @+id/foo
jest przez myPackage.R.id.foo
.
- 1. Kopiowanie elementu interfejsu użytkownika z adornerem
- 2. Powiązanie WPF z INotifyPropertyChanged nie aktualizuje się
- 3. AppManager nie aktualizuje się
- 4. DOM nie aktualizuje się po dodaniu klasy do elementu div?
- 5. Najlepszy sposób wibrowania elementu interfejsu użytkownika?
- 6. Ładowanie elementu iframe wewnątrz okna dialogowego interfejsu użytkownika nie działa
- 7. Adres URL do użytkownika Twittera z identyfikatorem, a nie nazwą
- 8. DataGrid SelectedItem nie aktualizuje się
- 9. Zaimportowane repo nie aktualizuje użytkownika Zatwierdza kalendarz
- 10. Czy onClickListener nie aktualizuje interfejsu użytkownika, dopóki cały kod w nim nie działa w systemie Android?
- 11. iOS7 Core Lokalizacja nie aktualizuje się
- 12. Couchbase View nie aktualizuje się natychmiast?
- 13. ApplicationSettingsBase.Upgrade() nie aktualizuje ustawień użytkownika po rekompilacji z .NET 4.0
- 14. Dlaczego nie zaleca się zatrzymywania fragmentów za pomocą interfejsu użytkownika?
- 15. Ekran startowy iOS nie aktualizuje się
- 16. meta tag opisu facebooka nie aktualizuje się
- 17. Witryna nie aktualizuje się po opublikowaniu
- 18. index.yaml nie aktualizuje
- 19. Dwie aplikacje ze współużytkowanym identyfikatorem użytkownika
- 20. Znaczek Travis-CI nie aktualizuje się
- 21. Aktywny indeks tabview nie aktualizuje się automatycznie
- 22. Wyrównanie pionowe elementu div przy użyciu semantycznego interfejsu użytkownika
- 23. Jak wygenerować R.java
- 24. ViewModel aktualizuje się co sekundę?
- 25. Jak uzyskać wartość obrotu elementu interfejsu użytkownika w WPF
- 26. Pole wejściowe AngularJS nie aktualizuje się z setTimeout wewnątrz kontrolera
- 27. Stan połączenia sieciowego z PhoneGap nie aktualizuje się w Ripple
- 28. PHP nie może rozszerzyć się z interfejsu?
- 29. exec nie powiodło się, ponieważ nazwa nie jest poprawnym identyfikatorem?
- 30. NPM nie aktualizuje readme
Wypróbowałeś Clean Project w Eclipse? Czy pliki xml znajdują się we właściwym folderze? – Pentium10
Tak, są one w folderze res \ layout. Clean Project też nie działa. –
Uaktualnij wtyczki Eclipse ADT. Skopiuj źródło do nowego folderu i zaimportuj do nowego projektu. Spróbuj ponownie utworzyć plik XML, który posiadasz. W każdym razie opublikuj odpowiedź, jeśli się dowiesz. – Pentium10