In al mijn klassen waar ik naar R.id.something
verwijs, is de R
rood en staat er “kan symbool R niet oplossen”. Elke keer dat er R.layout.something
is, 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%
- Controleer uw xml-bestanden.
- Project opschonen.
Dit is het.
Ik had bijvoorbeeld een invoer in mijn strings.xml
:
<string name="A">Some text</string>
En in activity_main.xml
heb 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.xml
werd niet geldig. Zoals het resultaat: kan niet oplossen r.
Controleer dus uw *.xml
bestanden 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.R
importeren (dit is uw project R
Bestand niet Android.R
BESTAND) AAN ALLE ACTIVITEITEN R
. Bijvoorbeeld in MainActivity
Bestand 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.xml
en 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
- Een hoofdletter in mijn tekenbare bronnen.
- Importeer Android.R dat wordt toegevoegd door Android Studio (of Eclipse)
- 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
- Stel de juiste mapstructuur
package
van<manifest>
inAndroidManifest.xml
in. - Stel de nieuwe pakketlocatie in voor
android:name
van<activity>
inAndroidManifest.xml
. - 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.
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:id
in plaats van een id-brontype.
FOUT
android:id="username"
CORRECTIE
android:id="@id/username"
Het verknoeien van dingen met betrekking tot
resources
in 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.
- Soms komt het voor bij het vervangen van een afbeeldingsbestand met dezelfde naam.
- 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. - 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…