Was ist an diesem Code falsch? Unten

  • Antworten:36
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 21

02.09.2012, 10:45:01 via Website

1package de.example.projectwildlifetest;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6
7public class MainActivity extends Activity {
8
9 @Override
10 public void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_main); <-------- Fehler
13 }
14
15 @Override
16 public boolean onCreateOptionsMenu(Menu menu) {
17 getMenuInflater().inflate(R.menu.activity_main, menu); <----- Fehler
18 return true;
19 }
20}
Eclipse zeigt mir diesen Fehler immer an wenn ich mein Gimp Background benutzen.
Wieso?
LG Elias

— geändert am 02.09.2012, 10:46:25

Antworten
  • Forum-Beiträge: 2.545

02.09.2012, 11:52:15 via Website

Dateiname besteht nur aus erlaubten Zeichen?
Wenn nicht, findest du in der Console sowas hier: "Invalid file name: must contain only [a-z0-9_.]"

Antworten
  • Forum-Beiträge: 21

02.09.2012, 12:28:59 via Website

Wie jetzt der Datei name von dem Bild oder das ganze Projekt. Das Bild heißt einfach nur Background.png und das Project 'ProjectWildlifeTest'. Und der Fehler komm was muss ich beheben.

— geändert am 02.09.2012, 12:29:20

Antworten
  • Forum-Beiträge: 2.545

02.09.2012, 12:42:25 via Website

Steht doch schon da: wenn das Bild wirklich "Background.png" heisst, entspricht es nicht den Namensregeln und muss zB in "background.png" umbenannt werden.

Antworten
  • Forum-Beiträge: 21

02.09.2012, 21:00:10 via Website

1package de.example.projectwildlifetest;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6
7public class MainActivity extends Activity {
8
9 @Override
10 public void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_main); <----------R cannot be resolved to a variable
13 }
14
15 @Override
16 public boolean onCreateOptionsMenu(Menu menu) {
17 getMenuInflater().inflate(R.menu.activity_main, menu); <-------------R cannot be resolved to a variable
18 return true;
19 }
20}

— geändert am 02.09.2012, 21:04:57

Antworten
  • Forum-Beiträge: 42

03.09.2012, 12:07:44 via Website

Elias Anderlohr
1package de.example.projectwildlifetest;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6
7public class MainActivity extends Activity {
8
9 @Override
10 public void onCreate(Bundle savedInstanceState) {
11 super.onCreate(savedInstanceState);
12 setContentView(R.layout.activity_main); <----------R cannot be resolved to a variable
13 }
14
15 @Override
16 public boolean onCreateOptionsMenu(Menu menu) {
17 getMenuInflater().inflate(R.menu.activity_main, menu); <-------------R cannot be resolved to a variable
18 return true;
19 }
20}

ich kann da auch keine import-Anweisung sehen.

Antworten
  • Forum-Beiträge: 77

03.09.2012, 14:05:30 via Website

Wenn man bei seinen Packages nichts durcheinandergebracht hat, braucht man die auch nicht.
Vermutlich wurden die Resourcen nicht kompiliert, oder es gab einen Fehler beim Kompilieren.

Antworten
  • Forum-Beiträge: 2.545

03.09.2012, 22:23:08 via Website

Welche der vielen Vorschläge hast du denn schon ausprobiert?

Wenn du kein Feedback und keine Infos gibst, dann kann das hier noch ewig so weiter gehen...

Es kann am Dateinamen liegen, an der Datei selbst, an dem Layout, in das du die Datei als Hintergrund eingebunden hast, oder an Dingen wie Refresh/Clean.

Antworten
  • Forum-Beiträge: 108

03.09.2012, 22:23:32 via Website

"R cannot be resolved to a variable"

Das bedeutet du hast die Klasse R nicht importiert die alle ids enthält. "R.layout.activity_main" ist eine id. Die id befindet sich in der automatisch generierten Klasse R.
Gehe zu Eclipse und drücke im Editor wo sich der code befindet den du gepostet hast STRG + O. Dann importiert Eclipse die fehlenden Klassen selbst.
__________________
www.gabenative.com
https://play.google.com/store/apps/details?hl=en&id=com.gn.android.compass
https://play.google.com/store/apps/details?hl=en&id=com.gn.android.flashlight

Antworten
  • Forum-Beiträge: 77

03.09.2012, 22:46:46 via Website

Nur ist das nicht das Problem, da die generierte Klasse R normalerweise in dem Package der MainActivity ist. Das Problem hier ist vermutlich, dass R nicht generiert wird. Aber das Engagement des Problemstellers das zu lösen scheint sich in Grenzen zu halten ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

03.09.2012, 22:48:42 via Website

Mach doch mal einen Screenshot von der Projektstruktur im Eclipse auf dem man die Layout- und Menu-Resourcen erkennen kann. Danach gucken wir uns noch die ID Zeilen in den Resourcedateien an. Das ist alles was falsch sein kann.

Der Import der R Klassen ist nicht notwendig. Ich weiß nicht wo der Tipp immer her kommt - wenn alles korrekt ist muss das ohne gehen.

Antworten
  • Forum-Beiträge: 108

03.09.2012, 23:17:24 via Website

Auch in diesem Fall, sollte man STRG+O drücken. Wenn die R Klasse wirklich nicht generiert wird, wird Eclipse die R-Klasse aus dem android package importieren. Auf diese Weise, weiß man das die R-Klasse im eigenen package nicht generiert wurde.

Wenn sich dann herausstellt, dass die R-Klasse tatsächlich nicht generiert wird kann man folgendes machen.
  • Clean über Eclipse
  • Die layout-Dateien auf Fehler prüfen. Manchmal zeigt Eclipse nicht alle Fehler an und das ist dann die Ursache dafür, dass die R-Klasse nicht generiert wird

Antworten
  • Forum-Beiträge: 21

06.09.2012, 21:59:20 via Website

Bin wieder aus dem Urlaub da und das mit strg-o geht nicht und strg-o-shift auch nicht der importiert immer nur
1import android.R;
.

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

06.09.2012, 23:16:36 via Website

... und in welchem der beiden res Ordner der beiden Projekte steckt nun besagtes Layout?

EDIT: Erst auf den zweiten Blick habe ich gesehen das zusätzlich der Name des ersten Projektes seltsam benannt ist. Klapp mal bitte in beiden Projekten die src Ordner auf (damit man den Packagenamen sehen kann) und klapp in beiden Projekten die res/layout sowie res/menu Ordner auf. Und dann sagst Du bitte noch was die beiden Projekte miteinander zu tun haben.

Mein Tipp: Beim ersten Projekt sind Projektname und Packagename vertauscht worden.

— geändert am 06.09.2012, 23:38:28

Antworten
  • Forum-Beiträge: 21

07.09.2012, 16:15:54 via Website

Die haben nur gleich das der fehler bei beide aufgetreten ist und der name ist so komisch weil ich das Project ausversehen gelöscht hatte und es dan wieder importiert habe.

— geändert am 07.09.2012, 16:27:46

Antworten

Empfohlene Artikel