Je travaillais sur mon application et tout était normal jusqu'à ce que j'essaie d'afficher une image en Java.
J'ai exécuté l'application une fois et elle fonctionnait normalement, l'image était affichée . Après cela, il m'a demandé d'importer des bibliothèques et je les ai importées. Après cela, j'ai eu des erreurs pour mes activités.
Des erreurs comme:
Gradle: error: cannot find symbol variable activity_main
Gradle: error: cannot find symbol variable button1
Gradle: error: cannot find symbol variable button2
Gradle: error: cannot find symbol variable textView
Gradle: error: cannot find symbol variable secondActivity
Dans MainActivity, j'ai importé ces bibliothèques:
import Android.R;
import Android.content.Intent;
import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;
import Android.widget.Button;
et dans secondActivity ceux-ci:
import Android.R;
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.widget.Button;
Est-ce que quelqu'un sait comment réparer ceci?
EDIT: J'ai supprimé import Android.R;
et maintenant cela fonctionne normalement.
Vous ne devriez pas importer Android.R
. Cela devrait être automatiquement généré et reconnu. Cette question contient de nombreux conseils utiles si vous obtenez une erreur en faisant référence à R
après la suppression de l'importation.
Quelques étapes de base après la suppression de l'importation, si ces erreurs apparaissent:
[a-z0-9.]
. Les capitales ou les symboles ne sont pas autorisés pour une raison quelconque.Si vous utilisezplusieurs saveurs?
Assurez-vous que le fichier de ressources n'est pas déclaré/ajouté à la fois dans une des versions et dans la version principale.
Exemple: fichier a_layout_file.xml
contenant la ou les variables de symbole
src:
saveur1/res/layout/(aucun fichier)
flavour2 / res/layout/a_layout_file.xml
main / res/layout/a_layout_file.xml
Cette configuration générera l'erreur: impossible de trouver la variable de symbole, car le fichier de ressources ne peut figurer que dans les deux versions ou uniquement.
Si vous utilisez un champ de configuration String
dans votre projet, cela pourrait être le cas:
buildConfigField "String", "source", "play"
Si vous déclarez votre chaîne comme ci-dessus, l'erreur se produira. Le correctif est de le changer en:
buildConfigField "String", "source", "\"play\""
assurez-vous que le R importé ne provient pas d'un autre module. J'avais déplacé une classe d'un module vers le projet principal et le R était celui du module.
Ouvrez le projet dans le studio Android, cliquez sur le fichier, puis sur Invalider les caches/redémarrer.
Assurez-vous que vous avez MainActivity
et .ScanActivity
dans votre fichier AndroidManifest.xml
:
<activity Android:name=".MainActivity">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".ScanActivity">
</activity>
Assurez-vous que vos variables sont à la portée de la méthode qui le référence. Par exemple, j'avais défini une vue de texte localement dans une méthode de la classe et la référençais dans une autre méthode.
J'ai déplacé la définition de textview en dehors de la méthode juste en dessous de la définition de classe afin que l'autre méthode puisse accéder à la définition, ce qui a résolu le problème.
Une autre alternative à la réponse de @ TouchBoarder ci-dessus est que vous pouvez également avoir deux fichiers de présentation avec le même nom mais pour des versions différentes de l'API. Vous devez supprimer l'ancien fichier my_file.xml
my_file.xml
my_file.xml(v21)