Android Studio oznacza R na czerwono z komunikatem o błędzie „nie można rozwiązać symbolu R”, ale kompilacja się powiodła

150

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:

Zrzut ekranu Android Studio

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:

wprowadź opis obrazu tutaj

Jakiś pomysł jak to naprawić?

Ilya Kogan
źródło
Zdarzyło się to w niektórych moich projektach. Aby to naprawić, „Wyczyść”, „Przebuduj”, zamknij projekt i otwórz ponownie. Następnie wybierz Narzędzia -> Android -> Synchronizuj projekt z plikami Gradle. Wypróbowano również następujące rozwiązania ... Zamknij projekt i fizycznie przenieś folder do nowego katalogu lub zmień nazwę bieżącego katalogu. Teraz zaimportuj projekt, jakby był nowy. Można to zrobić na kilka sposobów, na początkowym ekranie systemu Android wybierz opcję importu, a po zlokalizowaniu katalogu nie importuj z nazwy projektu ani katalogu głównego, importuj jeden poziom w „Aplikacja”.
Snappy Cracker
Czytelnicy, zanim spróbujesz czegoś innego, co może być skomplikowane ... po prostu spróbuj ponownie uruchomić studio Android.
eRaisedToX

Odpowiedzi:

111

Po prostu kliknij opcję Build -> Rebuild Project w swoim Android Studio.

pathe.kiran
źródło
Miałem obraz .Jpg, który zmieniłem na .png bez odpowiedniej konwersji. usunięcie tego pliku rozwiązało problem. choć dziwne ...
DeathRs
Bardzo chciałem to zrobić, ale Android Studio jest znany ze swojej kompilacji. Jeśli to zrobię, zajmie mi to więcej niż 30 minut.
Neon Warge
idealne rozwiązanie !!
Akash Bisariya
Musiałem to zrobić dwa razy
Janac Meena
czasami dzieje się tak z powodu błędu pliku XML. <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.
meyasir
63

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.

BlackHatSamurai
źródło
8
Po prostu pomagam każdemu, kto czyta. Prawdopodobnie coś w plikach XML powoduje błąd. Dla mnie (nie wiem dlaczego), ale było to spowodowane linią układu fragmentu: android: layout_bottom = "@ id / my_list" Po prostu przełączam się z tej linii z jednego fragmentu na użycie layout_top na innym fragmencie.
Mingsheng, 8-15
Dla mnie to samo! Dzięki za pomoc
Michael
To samo tutaj! Dziękuję Ci.
Teddy Wilson
Świetna odpowiedź! Dzięki
Berat Eyüboğlu,
Tak, w moim przypadku: wysokość mojego elementu xml wynosiła „50” zamiast „50dp”.
Krishna Raj Salim
44

Kliknij, Build -> Rebuild Projecta następnie kliknij Tools -> Android -> Sync Project with Gradle Files.

user2284700
źródło
2
To działa. Napotkałem błąd po uaktualnieniu wersji Gradle.
Vaquita
Moja sytuacja była taka: każdy cleanpopełniony wszystko Rstawał się błędem, każdy buildnaprawiał, ale oczywiście „nieczysty” projekt. Po wykonaniu tej odpowiedzi mogłem w końcu wyczyścić projekt bez błędów.
talz
Wystarczy dodać do odpowiedzi @ user2284700: W AS 3.1.3 „Synchronizuj projekt z plikami Gradle” znajduje się w menu „Plik”
BMU,
33

Upewnij się, że AndroidManifest.xmlnazwa twojego pakietu jest poprawna. To rozwiązało problem, gdy mój R.whateverbył oznaczony na czerwono!

Zalecałbym również sprawdzenie wszystkich gradleplików, aby upewnić się, że nazwy pakietów są poprawne. To nie powinno sprawić, że wszystko będzie czerwone, ale uniemożliwi gradleprawidłową synchronizację plików.

wyciągnięty
źródło
Dzięki! Robiłem mały eksperyment ze zmianą nazwy pakietu, aby zapomnieć o tym ...
tom
17

NIC NIE ROBIĆ . Po prostu zaktualizuj Android Studio. Rozwiąż mój problem! Działa idealnie.

TedVN
źródło
1
Wypróbowałem wszystkie wymienione tutaj rozwiązania. Aktualizacja studia Android rozwiązała problem
Siva K Reddy C Shiva
1
Dzięki za uratowanie mnie od marnowania więcej godzin na to
wmurmann
12

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.

Shashank Bhong
źródło
03.2019 To pomogło. Co ciekawe, zdarzyło się to tylko w jednym z moich projektów, a na dwóch pozostałych nie. Teraz mam nadzieję, że aktualizacja Android Studio nie zepsuła czegoś innego ...
Martin Berger
9
  1. Wybierz opcję menu Plik> Struktura projektu.
  2. Naciśnij OK w oknie komunikatu (zmiany struktury projektu nie aktualizują build.gradle).
  3. Wybierz „Moduły” w panelu bocznym „Ustawienia projektu”.
  4. Dla każdego modułu (projektu) sprawdź, czy sekcja „Excluded Folders” nie zawiera folderu „build”. Jeśli tak, naciśnij przycisk „x” obok folderu „build”.
  5. wciśnij OK

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.

reece
źródło
1
To już nie ma znaczenia, ale zauważ, że nie miałem pliku R.java w tym folderze, jak możesz zobaczyć w mojej odpowiedzi dla Loïc.
Ilya Kogan
9
  1. Odbuduj projekt.
  2. Jeśli (1) nie działa, uruchom ponownie Android Studio / Eclipse.

Jeśli to nie zadziała, sprawdź wszystkie pliki xml. Ten błąd występuje, gdy plik xml jest nieprawidłowy.

Lalit Kushwah
źródło
W moim przypadku wystąpił atrybut w pliku manifest.xml, który spowodował problem. Miałem bezsenne noce, dopóki nie odkryłem i po prostu usunąłem linię. Atrybut to android: fullBackupContent = ""
Kingsley Ijike
6

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 wybierzsources 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/debugjest również źródłem. W mam wszystkie mojebuild/source/*/debug oznaczone jako źródło.

moduł główny .iml

<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="android" name="Android">
      <configuration>
        <option name="SELECTED_BUILD_VARIANT" value="debug" />
        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
        <option name="ALLOW_USER_CONFIGURATION" value="false" />
        <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
        <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
        <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
      </configuration>
    </facet>
    <facet type="android-gradle" name="Android-Gradle">
      <configuration>
        <option name="GRADLE_PROJECT_PATH" value=":SherlockHolmes" />
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/r/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/rs/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/build/res/rs/test" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/res" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/aidl" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/assets" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/java" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/jni" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/rs" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/res" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/resources" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/build/apk" />
      <excludeFolder url="file://$MODULE_DIR$/build/assets" />
      <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
      <excludeFolder url="file://$MODULE_DIR$/build/classes" />
      <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
      <excludeFolder url="file://$MODULE_DIR$/build/exploded-bundles" />
      <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
      <excludeFolder url="file://$MODULE_DIR$/build/libs" />
      <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
      <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
      <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
    </content>
    <orderEntry type="jdk" jdkName="Android 4.2.2" jdkType="Android SDK" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Sherlock.aar" level="project" />
    <orderEntry type="library" name="SlidingMenu.aar" level="project" />
    <orderEntry type="library" name="support-v4-13.0.0" level="project" />
  </component>
</module>

projekt iml

<?xml version="1.0" encoding="UTF-8"?>
<module external.system.id="GRADLE" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="android-gradle" name="Android-Gradle">
      <configuration>
        <option name="GRADLE_PROJECT_PATH" value=":" />
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
      <excludeFolder url="file://$MODULE_DIR$/build" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

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 wierszyR . 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.

Loïc Faure-Lacroix
źródło
Cześć Loïc, do pytania dodałem zrzut ekranu struktury projektu. Jak widać, cały resfolder jest oznaczony jako „źródło”, a ja nie mam build/sourcekatalogu. Czy powinienem go stworzyć? Jeśli tak to jak?
Ilya Kogan,
cóż, katalog build / source powinien zostać utworzony podczas budowania, o ile mogę powiedzieć. Studio Android będące wersją „alfa”. Zawiera wiele dziwnych rzeczy. Mam 1.7.0_21. Jednym z pomysłów byłoby zrobienie pliku 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.
Loïc Faure-Lacroix
Nie jest tworzony, chociaż projekt kompiluje się i działa pomyślnie na urządzeniu.
Ilya Kogan
Pliki iml wyglądają bardzo podobnie do twoich, z tymi samymi folderami uwzględnionymi i wykluczonymi. "file: // $ MODULE_DIR $ / build / source / r / debug" jest dołączone, mimo że nie istnieje. Korzystanie z kompilacji zewnętrznej powoduje inne problemy (projekt w ogóle się nie kompiluje). Jak sprawdzić, czy jestem w trybie wydania?
Ilya Kogan,
5

Oto moje tymczasowe rozwiązanie, dopóki nie znajdę lepszego:

  1. 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>

  2. W widoku projektu kliknij moduł i naciśnij klawisz F4. Zignoruj ​​ostrzeżenie.

  3. 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.

Ilya Kogan
źródło
Czy próbowałeś korzystać z najnowszej wersji Android Studio w wersji 0.2.3? Jeśli problem nadal występuje, zgłoś go na code.google.com/p/android/issues, aby programiści Android Studio byli tego świadomi i mogli go zbadać i rozwiązać.
reece
1
Nie, zrezygnowałem z Android Studio. Uwielbiam IDE, ale wciąż jest tak wiele błędów, że nie nadaje się do pracy w zespole. Wróciliśmy do Eclipse.
Ilya Kogan
2
Nie ma problemu. Ponieważ Android Studio jest nadal w fazie rozwoju, musisz być w stanie zgłaszać wszelkie znalezione błędy (aby można je było naprawić) i być tolerancyjnym na jego ostre krawędzie. To nie jest dla każdego.
reece
5

To zadziałało dla mnie:

  1. Zamknij i ponownie otwórz projekt

  2. 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

bastami82
źródło
5

Rozwiązałem to przez:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.
Bapusaheb Shinde
źródło
Pewnego dnia bez wyraźnego powodu moja aplikacja po prostu się psuje ... wszędzie błędy ... Dziękuję bardzo! To było bardzo pomocne!
JFreeman
1
Bless you, Invalidate caches to jedyna rzecz, która pomogła
Kibi
4

Po prostu przejdź do listy menu głównego systemu Android. kliknij menu Build , w obszarze Build kliknij opcję Rebuild Project .

wprowadź opis obrazu tutaj

Gundu Bandgar
źródło
4

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 ProjectSpowoduje 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 FilesAndroid 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.

Snappy Cracker
źródło
W moim przypadku wystąpił atrybut w pliku manifest.xml, który spowodował problem. Miałem bezsenne noce, dopóki nie odkryłem i po prostu usunąłem linię. Atrybut to android: fullBackupContent = ""
Kingsley Ijike
3

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 .

user5194610
źródło
2

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.

Mazvél
źródło
Ponowna instalacja nie pomogła :(
Ilya Kogan,
To bardzo prymitywna metoda.
Taslim Oseni
2

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.

iOSAndroidWindowsMobileAppsDev
źródło
2

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ą.

parvez rafi
źródło
To pomogło, dzięki!
farahm
2

Wystąpił błąd ponownego wykorzystania kopiuj / wklej w deklaracji pakietu manifestu

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wrong.package.name">

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.

Cegła
źródło
U mnie wystąpił atrybut w pliku manifest.xml, który spowodował problem. Po prostu usunąłem tę linię. Atrybut to android: fullBackupContent = ""
Kingsley Ijike
1

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 :)

kikoso
źródło
1

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ę

<option name="RES_FOLDERS_RELATIVE_PATH" value="" />

do

<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />

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.

Lukas Hanacek
źródło
Gdzie znajdę plik iml?
Cappuccino90
ten sam folder, w którym znajduje się plik build.gradle ... najprawdopodobniej
Lukas Hanacek
1

Rozwiązanie jest proste:

Przejdź do File > Project Structure > appi wybierz Flavourskartę, wybierz API 21: Android 5.0 (Lollipop)z listy rozwijanej dla Min Sdk Version.

Kural Manivannan
źródło
Dzięki, to działa! Ustawiłem wartość minSdkVersion na znacznie niższą i przywrócenie rozwiązało problem.
Arvindh Mani
1

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”

Mauricio
źródło
1

musisz zaimportować plik R. projektu

import <YOUR-PROJECT-PACKGENAME>.R;
Joolah
źródło
1

Czyszczenie Projektu pomogło w moim przypadku

Iść do

Build -> Clean Project
Ezio
źródło
1

Jeśli otrzymujesz ten błąd, wyczyść projekt.

  1. Idź do tworzenia na szczycie swojego studia Android
  2. Wybierz opcję wyczyść projekt

Powodem tego jest to, że po wyczyszczeniu poprzedniego .apkpliku, który znajduje się w folderze projektu Android Studio w systemie, zostaje usunięty.

saksham agarwal
źródło
1

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:

  • IDE: Android studio 3.1.2
  • System: Mac Os

Rozwiązanie:

krok 1:

Znajdź plik konfiguracyjny dla Android Studio
Moja ścieżka:

/Applications/Android Studio.app/Contents/bin/idea.properties

krok 2:

Zmień 2500:

idea.max.intellisense.filesize=2500  

do 5000 lub więcej:

idea.max.intellisense.filesize=5000  
Yu Zhang
źródło
jak o tym myślisz co to znaczy?
Nikos Hidalgo
1
# Maksymalny rozmiar pliku (kilobajty) IDE powinno zapewniać pomoc w kodzie. # Im większy plik, tym wolniej działa jego edytor i większe są ogólne wymagania dotyczące pamięci systemu, # jeśli włączona jest pomoc w kodzie. Usuń tę właściwość lub ustaw bardzo dużą liczbę, jeśli potrzebujesz # pomocy w kodzie dla wszystkich dostępnych plików, niezależnie od ich rozmiaru. idea.max.intellisense.filesize = 2500
Yu Zhang
1

Musisz zmienić ścieżkę:

na przykład

import it.example.project.myproject.R;

zmienić w

import it.example.project.R;

user2912087
źródło
0

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.

Promień
źródło
0

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ę:

  1. Android Studio IDE, wybierz Plik | Struktura projektu.
  2. Wybierz swój moduł, np. „Aplikacja”
  3. W polu Compile SDK wybierz najnowszą wersję
  4. Wybierz także najnowszą wersję w Narzędziach do budowania

Potwierdź, a projekt powinien automatycznie zsynchronizować się poprawnie.

Wyciągam z tego lekcję, że oba powinny być takie same.

ǝɲǝɲbρɯͽ
źródło