web-dev-qa-db-fra.com

Android Studio: Impossible de résoudre le symbole MainActivity

J'ai une erreur "Impossible de résoudre le symbole MainActivity" sur ce code.

<activity
        Android:name=".MainActivity"          //here
        Android:label="@string/app_name"
        Android:launchMode="singleTask" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN"/> 

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action Android:name="Android.intent.action.VIEW" />

            <category Android:name="Android.intent.category.DEFAULT" />
            <category Android:name="Android.intent.category.BROWSABLE" />

            <data
                Android:Host="MainActivity"
                Android:scheme="callback" />
        </intent-filter>
    </activity>

Inutile de dire que MainActivity hérite de Activity et que le nom du package est également correct.

Pourquoi?

Je vous remercie

Voici une image de la structure de répertoire.

Snapshot of the directory structure

10
Yuya Okada

Il est possible que votre répertoire 'src' ne soit pas défini comme répertoire source?

Votre IDE semble voir votre com.example.fovoapp comme une structure de répertoire simple au lieu d'un package. Regardant également votre image liée, le petit "J" sur les fichiers Java me le dit aussi. Lorsqu'un fichier Java est défini comme source, il apparaît généralement sous la forme d'une classe "C".

Je peux me tromper, mais assurez-vous de définir votre répertoire src en tant que source et cela devrait résoudre le problème.

19
Miguel Lavigne

nom du package sur le fichier AndroidManifest.xml et vos classes doivent être identiques.

En-tête AndroidManifest.xml:

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="com.ahmet.currencies">

Code:

package com.ahmet.currencies;

import ...;


public class MainActivity extends Activity {}
11
Ahmet Arslan

Peut-être que vous utilisez le mauvais chemin pour le répertoire src.
Il devrait être dans le chemin: ./yourApp/src/main et non pas ./yourApp/src/androidTest
Vous pouvez le déplacer manuellement.

2
Alexandre Gombert

structure du projet, cliquez avec le bouton droit sur le dossier src-> Marquer le répertoire comme-> racine de la source.

Maintenant, votre fichier mainactivity.Java avec le symbole "j" pour passer au symbole "c".

L'erreur était que le projet n'avait pas de dossier source valide à partir duquel il pourrait rechercher la classe d'activité.

1
sdinesh94

Dans votre build.gradle file, ajoutez ce qui suit.

Android {
     sourceSets {
            main.Java.srcDirs += 'src/<YOUR DIRECTORY NAME>'
        }
...
...
}
0
Naskov