‘Kan symbool R niet oplossen’ in Android Studio

In al mijn klassen waar ik naar R.id.somethingverwijs, is de Rrood en staat er “kan symbool R niet oplossen”. Elke keer dat er R.layout.somethingis, is het rood onderstreept en staat er “kan methode setContentView(?) niet oplossen”. Het project bouwt altijd goed op. Het is vervelend om dit de hele tijd te zien. Ik heb hier veel andere vragen gelezen over iets soortgelijks, maar de meeste hadden betrekking op het importeren van projecten van Eclipse. Ik gebruik wat volgens mij de meest recente versie van Android Studio is en het project is gemaakt met Android Studio en werkte zonder problemen met “Kan R niet oplossen”. Ik zou graag willen weten wat dit veroorzaakt als iemand het weet.


Antwoord 1, autoriteit 100%

Ik had dit probleem ook. Een simpele ‘gradlew clean’ en ‘gradlew build’ deden het.


Klik op Build->Clean Projecten dat zal een geleidelijke opschoning uitvoeren


Antwoord 2, autoriteit 32%

In de nieuwste versies van Android Studio werkt, althans voor mij, het volgende:

“Extra” -> “Android” -> “Project synchroniseren met Gradle-bestanden”

In de nieuwste Android Studio 3.1.3 (juli 2018) is “Sync Project with Gradle Files” beschikbaar in de hoofdmenubalk.


Antwoord 3, autoriteit 22%

Ik gebruikte gradle 3.3.0. Het was de hoofdschuldige. 6.50 uur van mijn leven verspild. Gradle 3.2.1 heeft de fout verwijderd.

classpath 'com.android.tools.build:gradle:3.2.1'

Probleem opgelost na het wijzigen van de gradle-versie. De geschiedenis van details is hierte vinden.


Antwoord 4, autoriteit 15%

Ik heb een soortgelijk probleem en dit is wat ik deed:

Project opschonen en project synchroniseren met Gradle ,

controleer buildTools-versie in mijn sdk

Van build gradle (module ) verander minSdkVersion van 8 naar 9

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Maar dit heeft allemaal niet geholpen.

Eindelijk heb ik het antwoord gevonden (dit werkte in mijn geval)

Wijzigen van build.gradle(module:app)

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

Of

Bestand selecteren | Wijziging projectstructuur Build Tools-versie naar 21.1.1


Antwoord 5, autoriteit 8%

  1. Controleer uw xml-bestanden.
  2. Project opschonen.

Dit is het.

Ik had bijvoorbeeld een invoer in mijn strings.xml:

<string name="A">Some text</string>

En in activity_main.xmlheb ik deze tekenreeks gebruikt

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

Terwijl ik met het project werkte, heb ik dat aangescherpt dat

<string name="A">Some text</string>

en bijgevolg activity_main.xmlwerd niet geldig. Zoals het resultaat: kan niet oplossen r.

Controleer dus uw *.xmlbestanden en schoon project.


Antwoord 6, Autoriteit 7%

Als u deze fout ziet na Moving Java-bestanden of mappen naar andere locaties, dan kunt u garanderen dat Android-studio in de war is gekomen. En raad eens? Ongedaan maken van die acties repareren het probleem niet.

Dus je probeert een schoon, maar dat werkt niet.

en opnieuw opstarten werkt ook niet.

maar probeer bestand – & gt; Ongeldig caches / herstart … – & GT; Ongeldig en herstart

Android Studio onderhoudt informatie over welke bestanden afhankelijk zijn van welke andere bestanden. En aangezien het verplaatsen van bestanden niet correct is geïmplementeerd, veroorzaakt bewegende bestanden fouten. En dat is niet alles: Caches van deze afhankelijkheden worden gebruikt in een poging om de bouw te versnellen.

Dit betekent dat u niet alleen opnieuw moet opstarten, maar u moet die caches ongeldig maken om te herstellen (of meer nauwkeurig, opnieuw opgebouwd).


Antwoord 7, Autoriteit 6%

Ik denk dat als u uw activiteiten bestanden op een andere map plaatst dan de standaard. U moet de com.example.yourproject.Rimporteren (dit is uw project RBestand niet Android.RBESTAND) AAN ALLE ACTIVITEITEN R. Bijvoorbeeld in MainActivityBestand invoegen deze regel:

import com.example.yourproject.R;

Antwoord 8, Autoriteit 4%

Er lijken veel oorzaken voor dit probleem te zijn. Onlangs heb ik een activiteit toegevoegd om mee te testen, genaamd NewActivity. Dit creëerde een bestand met de naam res/menu/new.xmlen gradle hield niet van die naam omdat nieuw een gereserveerd woord is.

gradlew clean

of

"Tools" -> "Android" -> "Sync Project with Gradle Files"

Dat zijn zeker goede dingen om te proberen, maar het kan zijn dat je nog andere problemen hebt die je moet oplossen voordat je die opdrachten uitvoert.


Antwoord 9, autoriteit 2%

R.java-bestand bevat de link tussen xml en java-pagina. “R kan niet worden opgelost” treedt alleen op als er een probleem is met sommige van uw bronbestanden. Dus de beste en effectieve manier is om de laatst gemaakte xml of tekenbare in res-bestand te verwijderen. en dan weer vanaf daar beginnen volgens de android-coderingsnormen. Dit is de enige manier. De effectieve en juiste manier.

Gebruik Git ook voor het correct volgen van code. ..


Antwoord 10, autoriteit 2%

Heeft u uw SDK-tools onlangs bijgewerkt? Start de Android SDK-manager en zorg ervoor dat je de nieuwste SDK-tools hebt, die nu gescheiden zijn van de platformtools. Ik had hetzelfde probleem toen ik mijn SDK-manager voor het eerst bijwerkte. Het pakket met SDK build-tools kwam niet opdagen voor installatie/update totdat ik de SDK-manager sloot en opnieuw opende.


Antwoord 11, autoriteit 2%

Je code is gewoon vervormd. Het antwoord is vrij eenvoudig.

Ga gewoon naar Build–> Project opschonen.

Dat zou voldoende moeten zijn.

Controleer ook uw versie van Android Studio.

Ik gebruik momenteel Android Studio 3.0.1.


Antwoord 12, autoriteit 2%

Ik moest mijn R-pakket importeren in Android Studio. Bijvoorbeeld: import com.example.<package name>.R


Antwoord 13, autoriteit 2%

Schoon gewoon uw project op en synchroniseer project met Gradle File.

En het probleem zal worden opgelost.


Antwoord 14

Ik heb dit gehad met

  1. Een hoofdletter in mijn tekenbare bronnen.
  2. Importeer Android.R dat wordt toegevoegd door Android Studio (of Eclipse)
  3. Fout in xml-bestand

Antwoord 15

Ik had onlangs dit probleem en de clean/build etc. loste het niet op. Ik vermoedde dat ik ergens een probleem had, maar ik wist niet waar ik het moest zoeken om het te vinden (was het in het manifest, resource xml-bestanden enz.).

Als er iets mis is, kun je erachter komen wat het is door een code-analyse uit te voeren.

Kies in het menu bovenaan:

Analyseren -> Inspecteer de code, scan het hele project met het ‘Standaard’-profiel.

Uw inspectieresultaten bevatten een element met de naam ‘Android’. Hier krijgt u een lijst met alles wat problemen veroorzaakt in uw bronnen en manifestbestand. De fouten openen de gegenereerde xml-bestanden van uw build, die eventuele fouten in het rood zullen weergeven.

Mijn exacte probleem werd veroorzaakt doordat ik op smaak gebaseerde manifestbestanden gebruikte en ik per ongeluk enkele machtigingen in de <application>-tag in de smaak kopieerde.

UPDATE:ik had daarna een probleem waarbij Android Studio nog steeds de fout vertoonde na de fix, hoewel ik nu prima kon bouwen en draaien terwijl de fout er nog was. (Ik ben bezig met een kanarie-build, dus laat het daar voorlopig bij)


Antwoord 16

Ik heb met dit probleem te maken gehad toen ik de domeinmap van mijn app handmatig hernoemde. Om dit probleem op te lossen, moest ik

  1. Stel de juiste mapstructuur packagevan <manifest>in AndroidManifest.xmlin.
  2. Stel de nieuwe pakketlocatie in voor android:namevan <activity>in AndroidManifest.xml.
  3. Cache wissen door

Bestandsmenu -> Caches ongeldig maken / opnieuw opstarten …

Het probleem is verdwenen zodra de Android-studio opnieuw is opgestart en de nieuwe index heeft opgebouwd.


Antwoord 17

Ik had hetzelfde probleem:
Android Studio 3.2
Het project compileert en werkt prima, maar ik krijg de melding “Kan symbool “R” niet oplossen op het scherm

Helpt niet:

  • Bouw->Reinig project
  • Bouw->Herbouwproject
  • Bestand->caches ongeldig maken/opnieuw opstarten

Helpt:

ofwel

in build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

vervangen door

  dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

of

Android Studio updaten naar 3.3


Antwoord 18

Dit is een heel oude vraag, maar het komt nog steeds veel voor en er is hier geen echt alomvattend antwoord.

Ik heb dit probleem vaker gehad dan ik wil toegeven. Het kan worden veroorzaakt door een breed scala aan problemen die meestal allemaal te maken hebben met uw projectstructuur die niet overeenkomt met wat wordt verwacht. Hier is een lijst van alle problemen die ik heb gehad:

Importeren van Eclipse naar Android Studio gaat niet altijd soepel, vooral niet met oudere versies van Android Studio. Zorg ervoor dat u de juiste directorystructuur gebruikt. Het zou er als volgt uit moeten zien voor een redelijk volwassen app:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

Het ziet er misschien niet zo uit in uw IDE. Er is een vervolgkeuzelijst boven de bestandsstructuur die uw bestanden op verschillende manieren weergeeft, en het staat standaard op mijn systeem op een systeem met de naam Android dat uw bestanden opsplitst in hun verschillende typen. Het is gemakkelijker om dit soort problemen op te lossen vanuit het probleem met de naam Project, en nog gemakkelijker rechtstreeks vanuit het bestandssysteem van uw besturingssysteem, omdat Android Studio mappen samenvouwt die alleen een andere map bevatten op een enkele regel.

Vooral als u ooit de naam van uw app wijzigt, moet u ervoor zorgen dat de broncodestructuur main/java/com/domain/AppName wordt bijgewerkt. Zorg er ook voor dat de pakkettag in uw AndroidManifest.xml correct is.

Als er fouten zijn in uw Gradle-bestanden of uw AndroidManifest.xml, zal dit voorkomen dat Android Studio uw bronbestanden correct opbouwt. Gradle-bestanden kunnen worden verbroken door Android Studio soms te upgraden, vooral van de pre-1.0-versies. Soms is dit omdat het stopt met het ondersteunen van oudere versies van de Gradle-plug-in, dus je moet je versienummers bijwerken. Het kan soms moeilijk zijn om te vinden wat de huidige versies zijn. Vanaf vandaag, 17-7-2015, compileren mijn apps prima met com.android.tools.build:gradle:1.2.3. Dit staat in het afhankelijkhedenblok in het buitenste gradle-bestand,

Als je AndroidManifest verwijst naar een niet-bestaande teken- of tekenreeksbron of -activiteit, zal het breken en deze fout veroorzaken. Soms krijg je deze foutmelding als iets verwijst naar een niet-bestaande teken- of tekenreeksbron.

Als je een bestand in je bronnen hebt dat beschadigd is, of een ongeldig XML-bestand, krijg je deze foutmelding.

In mijn ervaring hapert Android Studio soms zonder reden, en moet je het en/of je pc opnieuw opstarten. Ik weet niet waarom, maar soms werkt het.

Als u twee xml-resources met dezelfde naam hebt, in mappen die elkaar niet overschrijven, kunt u dit probleem hebben. U kunt bijvoorbeeld dezelfde naam hebben in drawable-mhdpi en drawable-xhdpi omdat ze elkaar overschrijven, afhankelijk van het doelapparaat, maar als u dezelfde naam hebt in de lay-out en in het menu, zal dit een probleem veroorzaken. Hernoem of verwijder een van de bestanden.

Als slechts enkele bronnen dit probleem hebben, bevinden die bronnen zich hoogstwaarschijnlijk in de verkeerde map.

In één geval moest ik Android Studio volledig opnieuw installeren. Ik weet niet wat er mis was, maar het werkte.

In één geval heb ik mijn hele project naar een andere map verplaatst en het opnieuw geïmporteerd als een nieuw project. Ik weet niet wat er mis was, maar het werkte.

Xml-bestanden met gereserveerde woorden voor namen kunnen dit probleem veroorzaken. Hernoem of verwijder ze.

Er zijn een paar manieren waarop je Gradle-bestand kan verwijzen naar een versie van de build-tools die je niet hebt geïnstalleerd. Corrigeer dit door Gradle te wijzigen of de juiste build-tools te downloaden.

Ten slotte, nadat je hebt verholpen wat er mis is, moet je je Gradle-project opschonen. Dit doe je door naar het menu Bouwen bovenaan te gaan en Project opschonen te selecteren.


Antwoord 19

Ga gewoon naar de Android Top-menulijst. klik op het menu Build, klik onder Build op Rebuild Project.


Antwoord 20

Ik heb een speciaal geval voor dit probleem.

In mijn project gaat alles goed, het kan met succes compileren en bouwen, maar in mijn Android Studio IDE (en ik heb ook Intelligent IDEA geprobeerd, ze bevinden zich in dezelfde situatie) kan het R.java-bestand niet goed worden opgelost en altijd drop in rode lijn.

Net zo:

Dit maakte me bijna gek, ik kan de leeskleur niet verdragen wanneer ik praeg.

Eindelijk vond ik dat dit lastige probleem veroorzaakt is door de bestandsgrootte van mijn R.Java.
Mijn project is erg enorm, het ondersteunt veel multi-talen en multi-schermformaten. Er zijn zoveel middelen die de bestandsgrootte van mijn R.Java over 2,5 m .

De maximale grootte van een bestand in Android Studio is 2,5 miljoen in standaardinstellingen, dus bestanden groter dan deze limiet kunnen niet goed worden opgelost. En u kunt de standaardinstellingen in “Androidstudio-Root / Bin / Idea.Properties” wijzigen.

Wijzig deze regel:

idea.max.intellisense.filesize=2500

naar:

idea.max.intellisense.filesize=5000

Start Android Studio vervolgens opnieuw, de rode kleur ontslagen, ik kan nog een keer programmeren.


Antwoord 21

Build & GT; Schoon project

Dit werkte voor mij. Had een paar keer hetzelfde probleem, en dit lijkt het goed te zetten. Tenzij je iets hebt gewijzigd of een variabele R. genoemd, gebeurt dit probleem meestal uit het niets, wanneer het me gebeurt, dus ik kan me voorstellen dat het gewoon Android-studio’s freaking uit. haha

Heb een goede en veel succes met je projecten.


Antwoord 22

Do: build & gt; Schoon project

Belangrijk: zorg ervoor dat u geen fouten hebt na schoon project in het berichtvenster (Alt + 0). Als u rode cirkels vindt met uitroepteken, dan moet u die fouten in uw code verwijderen.

Meestal zijn deze fouten gerelateerd aan @ string / of @ array /. Schoon project opnieuw en klaar!


Antwoord 23

Ik had hetzelfde probleem en het gebeurt wanneer ik een nieuw project maak.

Wat ik doe is:

  • controleer op SDK-updates
  • vervolgens Android Studio-updates,
  • heropen dan het project
  • open de andoridmanifest.xml
  • wis een spatie tussen een “_>” in de android:label en sla op.

Dat werkt voor mij.


Antwoord 24

Ik vond het moeilijk om dit zelf op te lossen.

  • Zorg ervoor dat er geen fouten in uw layout.xml-bestanden staan.
  • Ga naar Build > Schoon project

Het werkte voor mij, ik hoop dat het ook voor jou werkt.


Antwoord 25

Ik had hetzelfde probleem en meestal wordt het opgelost door

  • Project synchroniserenmet graduele bestanden
  • Doen Build -> Schoon project
  • Doe Bestand -> Caches ongeldig maken

Maar deze keer bleef de fout bestaan, zelfs nadat ik al deze dingen had gedaan en eindelijk vond ik de boosdoener.

Het probleem zat in een xml-bestand, waar ik een gewone tekenreekswaarde heb gegeven voor een android:idin plaats van een id-brontype.

FOUT

android:id="username"

CORRECTIE

android:id="@id/username"

Het verknoeien van dingen met betrekking tot resourcesin xml-bestanden is een groot probleem
reden voor deze fout. Let op dat deze mogelijk niet als fout wordt weergegeven in het xml-lay-outbestand.

OPMERKING

In de meeste gevallen toont de compiler u de bron van de fout in het bericht.
Probeer het eerst te controleren voordat u andere oplossingen probeert


Antwoord 26

`Ik had hetzelfde probleem en het is opgelost door:

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

Antwoord 27

Deze notatie lijkt goed te werken.

android:id="@+id/viewID"

Het ontwerppaneel van Android Studio lijkt niet goed te werken.


Antwoord 28

Zelfde probleem. Begon toen ik een paar afbeeldingen in mijn tekenbare map toevoegde en probeerde ze te openen. Ook de toegevoegde afbeeldingen hadden de extensie met hoofdletters. Dat lijkt de build te hebben gecrasht, want zelfs als ik ze hernoemde, was het bericht hetzelfde en was R ontoegankelijk. Wat ik deed is, in het .iml-bestand zocht ik naar de includeFolder en verwijderde ze (zoals hieronder):

 <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/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

Daarna herbouwde ik het project en verscheen R op magische wijze weer.


Antwoord 29

Er zijn veel oorzaken voor deze fout.

  1. Soms komt het voor bij het vervangen van een afbeeldingsbestand met dezelfde naam.
  2. Stel dat je een item uit je layout .xml hebt verwijderd, zeg een <Button/>maar het wordt nog steeds gedeclareerd in een Activiteit of Fragment .java.
  3. Veel meer.

De beste manier om de fout op te sporen, is door hem opnieuw op te bouwen of te synchroniseren door een opzettelijke fout te maken.

Als het uw probleem niet oplost, moet er een fout of runtime-fout zijn, of er is een fout opgetreden als gevolg van onjuist gebruik van bronnen in zowel een java- als een xml-bestand in uw code of ontwerp dat gradle dwingt te stoppen omdat (R)esource-bestand je bronnen niet goed kan indexeren en je moet dat toegeven.

Als uw project liep voordat u de wijzigingen aanbracht, becommentarieer dan de wijzigingen die u heeft aangebracht en probeer het project opnieuw op te bouwen.

Het zal zeker werken aangezien er geen veranderingen zullen zijn.

Om de exacte fout op te sporen, controleert u de wijzigingen door de wijzigingen op te splitsen in kleinere modules.

Bijvoorbeeld – Als u een lijst zichtbaar maakt met een klik op de knop en lijstwaarden in de adapter invoegt, controleer dan eerst of u deze al dan niet zichtbaar kunt maken en controleer vervolgens op adapterfouten.


Antwoord 30

Importeer gewoon het R-symbool uit het rootpakket

import rootpackage.R;

Geen opnieuw opbouwen, synchroniseren of andere dingen…

Other episodes