web-dev-qa-db-fra.com

Android - activity_main ne peut pas être résolu ou n'est pas un champ

Les personnes précédentes ont reçu le même message d'erreur, mais la solution a toujours été de supprimer ou de modifier une importation "Android.R". Je n'ai pas cette importation alors je suis vraiment perdu

J'essaie d'obtenir un exemple de programme Google Maps Android en cours d'exécution. 

Je suis ce tutoriel. http://www.vogella.com/articles/AndroidGoogleMaps/article.html

Cependant, Eclipse me donne cette erreur lorsque je colle sur le code: "activity_main ne peut pas être résolu ou n'est pas un champ"

Cela se produit dans MainActivity dans cet extrait de code

  public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;}

L'erreur spécifique est dans la partie "R.menu.activity_main".

Voici mon fichier activity_main.xml.

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
tools:context=".MainActivity" >

<fragment
    Android:id="@+id/map"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    class="com.google.Android.gms.maps.MapFragment" />
</RelativeLayout> 

Et voici ma classe complète MainActivity.Java

package com.example.mapssample;
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.Menu;

import com.google.Android.gms.maps.CameraUpdateFactory;
import com.google.Android.gms.maps.GoogleMap;
import com.google.Android.gms.maps.MapFragment;
import com.google.Android.gms.maps.model.BitmapDescriptorFactory;
import com.google.Android.gms.maps.model.LatLng;
import com.google.Android.gms.maps.model.Marker;
import com.google.Android.gms.maps.model.MarkerOptions;

public class MainActivity extends Activity {
  static final LatLng HAMBURG = new LatLng(53.558, 9.927);
  static final LatLng KIEL = new LatLng(53.551, 9.993);
  private GoogleMap map;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
        .getMap();
    Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
    .title("Hamburg"));
Marker kiel = map.addMarker(new MarkerOptions()
    .position(KIEL)
    .title("Kiel")
    .snippet("Kiel is cool")
    .icon(BitmapDescriptorFactory
        .fromResource(R.drawable.ic_launcher)));

// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));

    // Zoom in, animating the camera.
    map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }

} 

Merci d'avance pour toute votre aide. Désolé pour mon code indenté, j'ai gardé quatre espaces supplémentaires pour le faire apparaître sous forme de code, et cela est devenu un peu bizarre.

Nouveau journal des erreurs.

Merci beaucoup, avez-vous une idée de ce que cela signifie?

06-07 22:45:25.226: E/AndroidRuntime(29901): FATAL EXCEPTION: main
06-07 22:45:25.226: E/AndroidRuntime(29901): Java.lang.NoClassDefFoundError: com.google.Android.gms.R$styleable
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.google.Android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.google.Android.gms.maps.MapFragment.onInflate(Unknown Source)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.Activity.onCreateView(Activity.Java:4713)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:680)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:746)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:489)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:396)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.view.LayoutInflater.inflate(LayoutInflater.Java:352)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:260)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.Activity.setContentView(Activity.Java:1893)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.example.mapssample.MainActivity.onCreate(MainActivity.Java:23)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.Activity.performCreate(Activity.Java:5058)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1079)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2100)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2174)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.ActivityThread.access$700(ActivityThread.Java:141)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1267)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.os.Handler.dispatchMessage(Handler.Java:99)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.os.Looper.loop(Looper.Java:137)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Android.app.ActivityThread.main(ActivityThread.Java:5059)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Java.lang.reflect.Method.invokeNative(Native Method)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at Java.lang.reflect.Method.invoke(Method.Java:511)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:792)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:555)
06-07 22:45:25.226: E/AndroidRuntime(29901):    at dalvik.system.NativeStart.main(Native Method)
13
Ian

1) Où votre fichier de mise en page existe-t-il? est-il sous dossier de mise en page alors ne devrait-il pas être 

R.layout.activity_main

2) Vous devez encore importer le fichier R de vos projets

com.example.mapssample.R;

3) Le fichier R est automatiquement généré s'il n'y a pas d'erreur dans votre code. Parfois, lorsque vous n'arrivez pas à résoudre l'erreur de fichier R, cela signifie que vous rencontrez un problème ailleurs dans le projet. Essayez le projet propre. Cela pourrait aider.

4) Vous n'avez pas vraiment besoin de menu pour tester ce projet. De plus, le fichier activity_main que vous avez montré est déjà inclus dans le projet et se trouve dans le dossier de présentation. Juste commenter la partie du menu et voir.

17
Sharj

Votre code a importé Android.R donc commencez par supprimer cette ligne Import Android.R;

alors supprimez cette ligne et appuyez sur cntrl + shift + o (pour importer les packages nécessaires) ..

20
Anil Chahal

J'ai eu la même erreur dans mon application et je l'ai résolue en 1. retirant import Android.R; et 2 .import com.example.yourpakagename.R;. 3. Après cela, nettoyez le projet.4. exécuter le projet 

6
andiDeve

J'ai trois façons de m'aider à résoudre ce problème, peut-être que cela fonctionne pour vous.

  1. premier nettoyage que d'essayer d'importer votre projet comme ceci: import com.example.mapssample.R;
  2. faites un clic droit sur le projet allez aux propriétés -> Android -> sélectionnez la cible. 
  3. nettoyer 
1
fasiha ikram

lorsque vous rencontrez une ligne d’onde rouge sous la lettre «Capital» majuscule, maintenez simplement la souris dessus et Sélectionnez la deuxième ligne «import your_package_name.R» Elle relie tous les fichiers associés de votre projet

Ne sélectionnez pas le premier correctif portant la mention "importer Android.R"

et il affiche toujours une erreur sous activity_main , Cela signifie que vous ne pouvez pas trouver ces fichiers dans votre projet, vérifiez que les noms de fichier tels que activity_main.xml, etc.

Esperons que ça marche..

1
Prakash Parmar

Je ne sais pas si cela résoudra votre problème, mais j'ai toujours déclaré le type de fragment en xml avec l'attribut "name", pas l'attribut "class". Essayez de faire votre fragment

<fragment
    Android:id="@+id/map"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:name="com.google.Android.gms.maps.MapFragment" />
0
brainmurphy1

le fichier activity_main.xml est peut-être erroné.Je veux dire qu'il y a une erreur de symbole étrange à l'intérieur du fichier.

0
anonym

c’est un problème courant dans Eclipse. donc 90%, c’est le problème du fichier R.Java. il en va de même pour les étapes suivantes, cela fonctionnera pour le rivage

1.Retirez votre import Android.R 

2.Ctrl + Maj + O.

3. nettoyer le projet 

0
varunRaj

Je suis le programme Deitel sous Android, et quand j'ai essayé de créer ma première application, j'ai rencontré des problèmes similaires… .. Ce que j'ai fait:

Dans les variables d'environnement Windows: HOME =% USERPROFILE% Java_HOME =\Program Files\Java\jre7\bin (ou quoi/où vous l'avez)

Dans le code: Mainactivity.Java: Ajouté Importer com.deitel.welcome.R (c'est-à-dire package . R) A changé l'appel R.layout.activity_main en R.layout. main (vérifiez le fichier R.Java généré)

Travail!

0
Thoid

Heh .. problème similaire .. s'avère quelque part le long de la ligne que j'avais renommé l'ID de fragment de carte dans le fichier de mise en page XML .. Je cherchais un ID de fragment qui n'existait pas .. espérons que cela aidera quelqu'un d'autre.

0
oBitOWhit