Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Moin zusammen ;)

Ich stehe seit eben vor dem Problem, dass Eclipse mir einige Fehler in meinem Quelltext anzeigt.

  • xxx cannot be resolved to a type
  • The method getLayout() is undefined for the type yyy
  • The import foo.bar.zzz cannot be resolved
  • The constructor www(String[]) refers to the missing type vvv

Damit wird mir mein kompletter QT vollgehaun. Mir ist klar, das einige Meldungen Folgefehler sind, weil z.b. der import nicht erkannt wird. Hatte jemand von euch schonmal das gleiche Problem? Und wie habt ihr es gelöst?

Was mich wundert ist, dass es gestern beim Runterfahren noch ein fehlerfreier QT war :confused:

System:

XP SP2

Eclipse Galileo

JDK 1.6

Werden im Project Explorer denn alle benötigten Abhängigkeiten korrekt angezeigt? Mit welchem Build-System arbeitest Du (Bei Maven und dem Eclipse Maven Plugin habe ich solche Sachen manchmal). Um welche Klassen handelt es sich (JDK oder benötigte Bibliotheken)?

Peter

Werden im Project Explorer denn alle benötigten Abhängigkeiten korrekt angezeigt?

ja

allerdings wird im Projektexplorer vor nahezu jeder Klasse das Symbol für Fehler angezeigt,... selbst wenn die Klasse keinen hat :upps

Mit welchem Build-System arbeitest Du (Bei Maven und dem Eclipse Maven Plugin habe ich solche Sachen manchmal).

ganz normaler Java-Builder

Um welche Klassen handelt es sich (JDK oder benötigte Bibliotheken)?

weder noch. die fehler beziehen sich alle auf selbstgeschriebene klassen in dem projekt. es ist aber unabhängig davon, ob die klassen im gleichen package liegen oder nicht.

das interessante ist, dass manche Klassen ohne Probleme funktionieren,... und andere gar nicht.

Eben mal getestet: Das Problem bezieht sich nur auf das eine Projekt. Alle anderen Projekte im Workspace verhalten sich so wie sie sollen

Es wäre einmal wichtig zu wissen, ob sich der Code per Hand kompilieren lässt. Probier' das bitte einmal mit "javac". Dann können wir nämlich sicher sein, dass es nur an Eclipse liegt, aber der Rest korrekt ist

hätte ich auch ruhig mal selber drauf kommen können :upps

aber danke für den denkanstoss. so... gesagt... getan.

der fehler scheint nicht an eclipse zu liegen, da ich mit nem javac dieselben meldungen bekomme.

:(´jetzt heisst es fehlersuche

Wie sieht denn Dein Projekt aus, also welche Verzeichnisse gibt es, wo ist das Wurzelverzeichnis für die Sourcen? Versuch doch mal, an einem Beispiel den Sachverhalt ein wenig genauer zu beschreiben. Du hast eine Klasse X, die hat eine Abhängigkeit zur Klasse Y (inkl. nötigem import), welche Fehler erhältst Du und was zeigt Eclipse wo an?

Peter

ok... ich versuchs mal:

Paket-Struktur:

  • xxx.xxx.xxx.mainpaket
  • xxx.xxx.xxx.mainpaket.sub1
  • xxx.xxx.xxx.mainpaket.sub2
  • xxx.xxx.xxx.mainpaket.sub3
  • ...

Jedes Paket hat eine unterschiedliche Anzahl an Klassen, welche teils über Instanz-Methoden, teils über Klassenmethoden aufeinander zugreifen. Dies hat auch bis gestern wunderbar funktioniert.

Seit heute morgen bekomme ich jedoch ne Menge Fehler, die mir sagen, dass einige Klassen nicht gefunden werden können.

Bsp:

package xxx.xxx.xxx.mainpaket.sub1;


public class IncorrectParameterException extends Exception {

...

}
In einer anderen Klasse versuche ich jetzt diese Exception zu werfen:
package xxx.xxx.xxx.mainpaket.sub2;


import...

import xxx.xxx.xxx.mainpaket.sub1.IncorrectParameterException;


public class ClassA extends Irgendwas{


public void machwas() throws IncorrectParameterException

	{

		...

	}


}

Fehlermeldung in Eclipse/CommandLine:

IncorrectParameterException cannot be resolved to a type

Die anderen Fehler sind entweder identisch mit dem hier beschriebenen oder sind Folgefehler

Braucht ihr noch was?

Da müsste man jetzt wirklich am Rechner sitzen und sich das anschauen können. Du hast gesagt, auch von der Kommandozeile aus kannst Du nicht kompilieren. Wenn Du eine der benötigten Klassen dort einzeln deployst, und danach einzeln eine der davon Abhängigen, erhältst Du den Fehler dann? Oder ist es so, dass eine der grundlegendsten Klassen nicht kompiliert werden kann? Poste zusätzlich mal die gesamte Ausgabe der Shell, wenn Du mit javac das gesamte Projekt kompilierst.

Peter

Ausgabe einer Klasse, welche auf keine andere referenziert:

C:\>javac "{lokaler Pfad}\{Projektname}\xxx\xxx\xxx\ mainpaket\ClassA.java"

Lässt sich also ohne weiteres Kompilieren

Ausgabe einer Klasse, welche eine statische Methode der 1.Klasse aufruft

C:\>javac "{lokaler Pfad}\{Projektname}\xxx\xxx\xxx\mainpaket\sub1\ClassB.java"

{lokaler Pfad}\{Projektname}\xxx\xxx\xxx\mainpaket\sub1\ClassB.java:10: cannot find symbol

symbol : class ClassA

location: package xxx.xxx.xxx.mainpaket

import xxx.xxx.xxx.mainpaket.ClassA;

^

{lokaler Pfad}\{Projektname}\ xxx\xxx\xxx\mainpaket\sub1\ImagePanel.java:29: cannot find symbol

symbol : variable ClassA

location: class xxx.xxx.xxx.mainpaket.sub1.ClassB

img = img.getScaledInstance(ClassA.machwast(), Image.SCALE_SMOOTH);

^

{lokaler Pfad}\{Projektname}\ xxx\xxx\xxx\mainpaket\sub1\ ClassB.java:29: cannot find symbol

symbol : variable ClassA

location: class xxx.xxx.xxx.mainpaket.sub1. ClassB

img = img.getScaledInstance(ClassA.machwast(), Image.SCALE_SMOOTH);

^

3 errors

Und hier beginnt der Fehler.

nachdem was Eclipse mir sagt, liegt ein Problem mit dem Import vor (ist ja auch das, was als erste Fehlermeldung beim javac kommt). Ich kann mir nur nicht erklären, warum -.-

Liegt die von Dir händisch kompilierte Klasse A denn auch da, wo von javac gesucht wird (classpath)?

Peter

Liegt die von Dir händisch kompilierte Klasse A denn auch da, wo von javac gesucht wird (classpath)?

irgendwie nimmst Du mir immer schon einen Großteil des Postings ab :P

Die import-Anweisung funktioniert ähnlich wie Pfade, so dass man, wenn man die einzelnen Pfade nicht im Classpath korrekt drin hat, eben aus dem Root-Verzeichnis des Projektes kompilieren muss.

sollte zumindest. muss ich aber nochmal nachschaun.

auch wenn ich nicht denke, dass es daran liegt, da ja eclipse schon vor dem kompilieren meckert.

aber ich such mal

Nein, Eclipse meckert schon immer nach dem Kompilieren. Denn durch das Kompilieren tritt ja der Fehler erst auf. Eclipse baut aber nicht immer alles, sondern kompiliert einzelne Teile nach.

Edit: @flashpixx das würde bedeuten, wir haben ähnliche Lösungsstrategien -> Gutes Zeichen. :)

Peter

Nein, Eclipse meckert schon immer nach dem Kompilieren. Denn durch das Kompilieren tritt ja der Fehler erst auf. Eclipse baut aber nicht immer alles, sondern kompiliert einzelne Teile nach.

Wieder was gelernt...

BTW: eben eclipse auf... alle fehler weg :upps

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.