it-swarm.com.de

Android - activity_main kann nicht aufgelöst werden oder ist kein Feld

Vorherige Personen hatten die gleiche Fehlermeldung, aber die Lösung bestand immer darin, einige importierte "Android.R" zu entfernen oder zu ändern. Ich habe keinen solchen Import, also bin ich wirklich verloren

Ich versuche, ein Beispiel für ein Google-Kartenprogramm für Android zum Laufen zu bringen. 

Ich folge diesem Tutorial. http://www.vogella.com/articles/AndroidGoogleMaps/article.html

Eclipse gibt mir jedoch diesen Fehler, wenn ich den Code einfüge: "activity_main kann nicht aufgelöst werden oder ist kein Feld"

Dies geschieht in MainActivity in diesem Codefragment

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

Der spezifische Fehler befindet sich im Teil "R.menu.activity_main".

Hier ist meine Datei 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> 

Und hier ist meine vollständige MainActivity.Java-Klasse

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;
  }

} 

Vielen Dank im Voraus für all Ihre Hilfe. Es tut mir leid, dass ich in meinem Code ein wenig einfallende Einrückung vorgenommen habe. Ich habe vier zusätzliche Leerzeichen angegeben, damit er als Code erscheint und es wurde ein bisschen komisch.

Neues Fehlerprotokoll.

Vielen Dank, haben Sie eine Ahnung, was das bedeutet?

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) Wo ist Ihre Layoutdatei vorhanden? Ist es unter Layout Ordner dann sollte es nicht sein 

R.layout.activity_main

2) Sie müssen noch Ihre R-Datei für Projekte importieren

com.example.mapssample.R;

3) Die R-Datei wird automatisch generiert, wenn in Ihrem Code kein Fehler vorliegt. Manchmal, wenn Sie R-Datei-Fehler nicht beheben können, bedeutet dies, dass Sie ein Problem an anderer Stelle im Projekt haben. Versuchen Sie es mit einem sauberen Projekt. Es könnte helfen.

4) Sie benötigen kein Menü, um dieses Projekt zu testen. Auch die von Ihnen gezeigte Activity_main-Datei ist bereits im Projekt enthalten und befindet sich im Layoutordner. Kommentieren Sie einfach den Menüteil und sehen Sie.

17
Sharj

Ihr Code hat Android.R importiert. Entfernen Sie daher zuerst diese Zeile Import Android.R;

entfernen Sie diese Zeile und drücken Sie cntrl + shift + o (um die erforderlichen Pakete zu importieren).

20
Anil Chahal

Ich hatte den gleichen Fehler in meiner App und löste ihn, indem ich import Android.R; und 2 .import com.example.yourpakagename.R;. Entfernte. Danach das Projekt reinigen.4. Projekt ausführen 

6
andiDeve

Ich habe drei Möglichkeiten, dieses Problem zu lösen. Möglicherweise funktioniert es für Sie.

  1. zuerst sauber, dann versuchen Sie, Ihr Projekt wie folgt zu importieren: import com.example.mapssample.R;
  2. rechtsklick auf Projekt gehen Sie zu Eigenschaften -> Android -> Ziel auswählen. 
  3. sauber 
1
fasiha ikram

wenn Sie eine rote Wellenlinie unter dem Capital "R" sahen, halten Sie die Maus gedrückt und Wählen Sie die zweite Zeile "import your_package_name.R" .__ aus, da alle verknüpften Dateien Ihres Projekts verknüpft werden

Wählen Sie nicht den ersten Fix aus, der "import Android.R" sagt

und es wird immer noch ein Fehler unter activity_main angezeigt. Dies bedeutet, dass diese Dateien in Ihrem Projekt nicht gefunden werden können. Überprüfen Sie, ob Dateinamen wie "activity_main.xml" usw. vorhanden sind.

Hoffe, es funktioniert..

1
Prakash Parmar

Ich bin nicht sicher, ob dies Ihr Problem lösen wird, aber ich habe den Typ des Fragments immer in xml mit dem Attribut "name" und nicht mit dem Attribut "class" deklariert. Versuchen Sie, Ihr Fragment zu erstellen

<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

die Datei activity_main.xml ist möglicherweise falsch. Ich meine, in der Datei gibt es einige seltsame Symbolfehler. Sie sollten es überprüfen.

0
anonym

dies ist ein häufiges Problem bei Eclipse. also 90% ist das Problem mit der R.Java-Datei. So führen Sie die folgenden Schritte für das Land aus

1.Entfernen Sie Ihren Import Android.R 

2. STRG + UMSCHALT + O.

3.reinigen Sie das Projekt 

0
varunRaj

Ich verfolge das Deitel-Android-Programm "How to program-book", und als ich versuchte, meine erste eigene Anwendung zu erstellen, kam es zu ähnlichen Problemen.

In Windows-Umgebungsvariablen: HOME =% USERPROFILE% Java_HOME =\Programme\Java\jre7\bin (oder was/wo haben Sie es)

Im Code: Mainactivity.Java: Der Import von com.deitel.welcome.R (das ist package . R) .__ wurde hinzugefügt. Der Aufruf R.layout.activity_main wurde in R.layout geändert. main (überprüfen Sie die generierte R.Java-Datei)

Arbeiten!

0
Thoid

Heh .. ähnliches Problem ... stellt sich irgendwo entlang der Linie heraus, in der ich die Kartenfragment-ID in der XML-Layoutdatei umbenannt habe. War nach einer Fragment-ID gesucht, die nicht vorhanden ist .. hoffe, es hilft jemand anderem.

0
oBitOWhit