W każdym projekcie, który próbowałem stworzyć w Android Studio, wszystkie zastosowania R są zaznaczone na czerwono z komunikatem o błędzie „nie można rozwiązać symbolu R”, ale kompilacja kończy się powodzeniem i aplikacja działa. Jest to naprawdę irytujące, ponieważ blokuje automatyczne uzupełnianie i pokazuje ogromne, czerwone linie w całym kodzie.
Używam Android Studio 1.7.0 i tworzę projekt z domyślnymi ustawieniami. W załączeniu zrzut ekranu:
To jest moje build.gradle
:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
Tak wygląda struktura projektu:
Jakiś pomysł jak to naprawić?
android
gradle
android-studio
Ilya Kogan
źródło
źródło
Odpowiedzi:
Po prostu kliknij opcję Build -> Rebuild Project w swoim Android Studio.
źródło
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
Sprawdź te wiersze w plikach xml i popraw je.Okazało się, że ten problem jest spowodowany błędami w moich plikach XML. Po naprawieniu błędów XML, wyczyść / zbuduj, rozwiązało problem.
źródło
Kliknij,
Build -> Rebuild Project
a następnie kliknijTools -> Android -> Sync Project with Gradle Files
.źródło
clean
popełniony wszystkoR
stawał się błędem, każdybuild
naprawiał, ale oczywiście „nieczysty” projekt. Po wykonaniu tej odpowiedzi mogłem w końcu wyczyścić projekt bez błędów.Upewnij się, że
AndroidManifest.xml
nazwa twojego pakietu jest poprawna. To rozwiązało problem, gdy mójR.whatever
był oznaczony na czerwono!Zalecałbym również sprawdzenie wszystkich
gradle
plików, aby upewnić się, że nazwy pakietów są poprawne. To nie powinno sprawić, że wszystko będzie czerwone, ale uniemożliwigradle
prawidłową synchronizację plików.źródło
NIC NIE ROBIĆ . Po prostu zaktualizuj Android Studio. Rozwiąż mój problem! Działa idealnie.
źródło
Miałem podobny problem z „com.android.tools.build:gradle:3.3.1”, próbowałem wszystkich powyższych rozwiązań i nic nie działało. Właściwie został zbudowany: problem z grą 3.3.1. Zmieniłem to na 3.2.1 i zadziałało.
Więc może to być problem z wersją build: gradle.
źródło
Powinien zostać wyświetlony folder „MyAppProject / MyApp / build / source”. Powinien zawierać folder „r” (w którym generowany jest plik R.java). W tym miejscu powinieneś zobaczyć „debug”, „release” na niebiesko (jeśli masz projectFlavour w pliku build.gradle, będą one znajdować się w folderze „”). W tym folderze debugowania / wydania powinna znajdować się nazwa pakietu aplikacji, a następnie plik R.java zawierający wszystkie identyfikatory zasobów.
źródło
Jeśli to nie zadziała, sprawdź wszystkie pliki xml. Ten błąd występuje, gdy plik xml jest nieprawidłowy.
źródło
Z pewnych powodów Android Studio używa różnych konfiguracji dla edytora i kompilatora. Jeśli to działa dla kompilatora, to jest dobre. Jeśli to nie zadziała dla redaktora. (widzi nierozwiązane pliki).
Musisz dodać katalogi do źródła projektu. Na przykład wszystkie zasoby powinny być oznaczone jako „źródło”.
Plik-> Struktura projektu
Wybierz „Moduły”, a następnie swój projekt. I wybierz
sources
kartę. Po prawej stronie znajdź katalog zasobów i kliknij niebieski przycisk „źródło”. Zamknij wszystko i powinno działać.Musisz też się o to upewnić
build/source/r/debug
jest również źródłem. W mam wszystkie mojebuild/source/*/debug
oznaczone jako źródło.moduł główny .iml
projekt iml
Czarna magia
Nie jestem pewien co do tego, ale słyszałem, że działa, podczas gdy jestem prawie pewien, że nie powinno to niczego zmieniać. Spróbuj skompilować i zapisać projekt po skomentowaniu wszystkich wymaganych wierszy
R
. Wtedy, gdy wszystko nie jest czerwone. Spróbuj dodać je z powrotem. Dziwne jest to, że twoja kompilacja / źródło nie jest generowane.Również to pytanie sugeruje sprawdzenie "kompilator użyj zewnętrznej kompilacji"
Android Studio nie generuje R.java dla mojego projektu importu
Dygresja
Upewnij się również, że w Twoim kodzie java nie ma pliku.
import android.r;
z tego, co pokazałeś, wszystko wydaje się w porządku. Dziwne, że kompilacja / źródło nie jest tworzone. Na przykład nie mam kompilacji / apk. Być może jesteś w trybie wydania i nie tworzy tych katalogów.źródło
res
folder jest oznaczony jako „źródło”, a ja nie mambuild/source
katalogu. Czy powinienem go stworzyć? Jeśli tak to jak?build/rebuil project
. Jeśli możesz uruchomić gradle z wiersza poleceń, może to spowodować błędy, które nie są wyświetlane w edytorze.Oto moje tymczasowe rozwiązanie, dopóki nie znajdę lepszego:
Używając Wszystko, znajdź miejsce, w którym powstaje R.java. W moim przypadku tak było
C:\Program Files (x86)\Android\android-studio\system\compiler\<project-name>.cb969c52\.generated\aapt\<module-name>.6badd9a4\production\com\<project-name>\<module-name>
W widoku projektu kliknij moduł i naciśnij klawisz F4. Zignoruj ostrzeżenie.
Kliknij „+ Add Content Root” i wybierz wspomniany folder. Upewnij się, że jest zaznaczony na niebiesko (jako źródło).
Po tym, jak to zrobiłem, nagle wszystkie ostrzeżenia zniknęły. Problem polega na tym, że jeśli współpracujesz z innymi osobami, nazwa folderu jest inna na każdym komputerze, więc zachowaj ostrożność podczas synchronizacji.
źródło
To zadziałało dla mnie:
Zamknij i ponownie otwórz projekt
Naciśnij „Synchronizuj projekt z plikiem Gradle” (obok ikony menedżera AVD w górnym menu) powtórz 1-2, jeśli Gradle nie mógł zsynchronizować się po raz pierwszy. (mój pracował po raz drugi).
Współpracował z Android Studio 1.2.2
źródło
Rozwiązałem to przez:
źródło
Po prostu przejdź do listy menu głównego systemu Android. kliknij menu Build , w obszarze Build kliknij opcję Rebuild Project .
źródło
Czasami te błędy kompilacji będą występować znikąd. Jeśli tak się stanie, spróbuj tego:
Sprawdź ponownie poprawność XML w swoich plikach zasobów: Jeśli plik R.java nie został wygenerowany dla ostatniej kompilacji, zobaczysz błędy w swoim projekcie wszędzie tam, gdzie odwołujesz się do zasobu. Może to być spowodowane literówką w jednym z plików XML. Layout XML nie zawsze jest sprawdzany, więc literówki w tych plikach mogą nie być wyraźnie zwracane. Znalezienie literówki i zapisanie pliku powinno spowodować regenerację R.java.
Wyczyść swój projekt!
Select Build → Clean Project
Spowoduje to przebudowanie projektu od podstaw, co może skutkować wolną od błędów kompilacją.Zsynchronizuj swój projekt z Gradle!
Select Tools → Android → Sync Project with Gradle Files
Android Studio odbuduje projekt od podstaw z poprawnymi ustawieniami projektu, co może pomóc w rozwiązaniu problemów po zmianie konfiguracji Gradle.Uruchom Android Lint! Pyłki mogą dostarczyć dobrych informacji dotyczących problemu. Jeśli powyższe nie zadziała, w tym miejscu najprawdopodobniej znajdziesz swój problem. Aby uruchomić Lint,
select Analyze → Inspect Code → select Whole project → OK
dokładnie przeanalizuj sugestie Lint; zacznij od błędów, a następnie ostrzeżeń.Powodzenia.
źródło
Ten błąd występuje, ponieważ w moim pliku activity_main.xml znajduje się nieprawidłowe dane wejściowe.
Podczas próby skompilowania lub wyczyszczenia projektu zostaną wyświetlone komunikaty o błędach .
Rozwiązałem swoje, czytając te komunikaty o błędach , popraw to , co jest nie tak w moim pliku xml. następnie przebuduj projekt .
źródło
Miałem ten błąd kilka dni temu, próbowałem się rozejrzeć, dopóki nie zdecydowałem się ponownie zainstalować Android Studio. U mnie to zadziałało.
źródło
Podczas tworzenia projektu z próbki, bez importowania istniejącego projektu jest dobre (zapobiega kolizjom z gradle, .idea, .iml, build, jars i apks, czyli wszystkie niepotrzebne pliki generowane przez build), po utworzeniu nowego projektu kopiowanie i wklejając wszystkie odpowiednie zasoby, polecam:
sprawdzanie pakietów i importów z pakietów w ramach projektu {deklaracja AndroidManifest i wszystkie importy w klasach java}, wszystkie zasoby (rysowalne, mip-map, układy i menu oraz build.gradle (próbka build.gradle do użycia z najnowszym sdk można podać na żądanie)), aby sprawdzić, czy tam są i czy zadeklarowane ciągi i identyfikatory rzeczywiście istnieją i zostały użyte, po czym jedynym błędem powinno być zadane pytanie:
Bulid-> Clean Project
Narzędzia-> Android-> Synchronizuj projekt z plikami Gradle
Plik-> Unieważnij pamięci podręczne i uruchom ponownie
W najgorszych przypadkach ponowne uruchomienie komputera pomaga.
Powyższe powinno działać. W razie potrzeby zachęcamy do zadawania pytań, np. Zamieszczania komentarzy.
źródło
powoduje to głównie z powodu błędów w pliku xml, sprawdź swoje ostatnie zmiany xml i odbuduj go, ten sam problem ze mną.
źródło
Wystąpił błąd ponownego wykorzystania kopiuj / wklej w deklaracji pakietu manifestu
nazwa działania głównego miała poprawną ścieżkę, więc manifest nie zawierał żadnych sprawdzonych błędów.
Po rozwiązaniu tego problemu plik źródłowy nadal wyświetlał błędy, chociaż kompilacja się powiodła. Właśnie uruchomiłem aplikację, a następnie wskaźniki błędów źródła się wyczyściły.
źródło
Pomogło mi to również w przypadku ręcznego czyszczenia folderu .idea / libraries, a następnie kliknięcia opcji „Synchronizuj projekt z plikami Gradle” rozwiązuje problem. Najwyraźniej ta synchronizacja nie usuwa elementów, ale zachowuje stare i dodaje aktualne. Prawdopodobnie błąd do zgłoszenia :)
źródło
Miałem ten sam problem ze studiem Android, dowiedziałem się, że kompilacja / wygenerowane / źródło / r zawiera tylko folder wydania, a nie debugowanie. Więc z jakiegoś powodu kompilacja debugowania nie wygenerowała użytecznej klasy R.
Rozwiązałem to, otwierając plik projektu iml i naprawiłem tę linię
do
ponownie zsynchronizowano z gradle, zakomentowałem wiersze za pomocą R, uruchom debug, aby wygenerować R, odkomentuj wiersze za pomocą R i ponownie uruchom debugowanie, naprawione.
źródło
Rozwiązanie jest proste:
Przejdź do
File > Project Structure > app
i wybierzFlavours
kartę, wybierzAPI 21: Android 5.0 (Lollipop)
z listy rozwijanej dlaMin Sdk Version
.źródło
W moim przypadku podążałem za wszystkimi odpowiedziami, które mogłem znaleźć w Stackoverflow i żadna z nich nie wydawała się rozwiązać tego problemu. Wszystkie odpowiedzi wskazywałyby na możliwe uszkodzenie pliku xml lub konflikt z nazwami Gradle. Niektóre odpowiedzi twierdziły, że konieczne będzie wyczyszczenie projektu lub synchronizacja projektu z plikami Gradle. żadne z tych rozwiązań nie rozwiązałoby problemu. Ponadto, gdy korzystałem z samouczka, jak zbudować aplikację Hello World i po prostu podążałem za oknami kreatora Android Studio bez żadnego kodowania, nie miałoby sensu podejrzewać, że była to literówka.
TLDR
Problem okazał się być wersją Build Tools. Mój był ustawiony na 23.0.0 rc1 , więc zmieniłem go na 22.0.1 . Przypuszczam, że to dlatego, że używam ostatniej dostępnej wersji Androida dostępnej.
Aby zmienić tę wartość, możesz otworzyć przeglądarkę projektów w lewym oknie> kliknąć prawym przyciskiem „aplikacja> Otwórz ustawienia modułu” i poszukać ich na karcie „Właściwości”
źródło
musisz zaimportować plik R. projektu
źródło
Czyszczenie Projektu pomogło w moim przypadku
Iść do
źródło
Jeśli otrzymujesz ten błąd, wyczyść projekt.
Powodem tego jest to, że po wyczyszczeniu poprzedniego
.apk
pliku, który znajduje się w folderze projektu Android Studio w systemie, zostaje usunięty.źródło
Ostatnio importuję swój projekt do studia Android, będącego częścią R jest zaznaczona na czerwono z komunikatem o błędzie „nie można rozwiązać symbolu R”, ale kompilacja się powiodła i aplikacja działa.
Rozwijaj rozwój:
Rozwiązanie:
krok 1:
Znajdź plik konfiguracyjny dla Android Studio
Moja ścieżka:
krok 2:
Zmień 2500:
do 5000 lub więcej:
źródło
Musisz zmienić ścieżkę:
na przykład
import it.example.project.myproject.R;
zmienić w
import it.example.project.R;
źródło
Napotkałem ten sam błąd, okazuje się, że plik manifestu zawierał błędy. Po naprawieniu ponownie kliknąłem Utwórz projekt, działało dobrze. Android studio czasami nie wyświetla bardzo pomocnych komunikatów o błędach.
źródło
Od czasu do czasu mnie to gryzie i jest jeszcze jedna rzecz do wypróbowania: dopasuj wersje compileSdk i buildSdk do najnowszych dostępnych.
Zmieniłem moją kompilację compileSdkVersion z 21 na 19, ponieważ debugger Android Studio (kanał kanarowy 1.1) nie śledził poprawnie w gotowych bibliotekach. Okazało się, że wyglądało na śledzenie oparte na buildToolsVersion (19.1.0), które zweryfikowałem, klikając błąd w śladzie stosu (a następnie wybierając 19 zamiast 21). Chociaż zmieniłem to bezpośrednio w pliku build.gradle, graficzny opis przejścia jest tutaj: https://www.blogger.com/comment.g?blogID=4722727826918942842&postID=3875998513888772255 i podsumuję:
Potwierdź, a projekt powinien automatycznie zsynchronizować się poprawnie.
Wyciągam z tego lekcję, że oba powinny być takie same.
źródło