AbstractMethodError

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2002-02-13 22:03

Som de flesta på detta forum vet så utvecklar jag en IRC client, som kanske en heldel andra av er också vet så har jag bytat ut GUI delen till cocoa istället för awt, men nu uppstår problem, ibland när jag kör min irc klient så uppkommer felet java.lang.AbstractMethodError, har kollat upp vad felet betyder på sun´s hemsida för att vara riktigt säker, kollat igenom min kod uteslutit att det kan vara någon egentligen abstract metod eftersom jag bara hade en sådan och den tog jag bort där efter.
Sedan var nästa steg att kolla så jag inte gjort en type cast på något object till en typ som den inte är, tänkte det kunde vara därför den kanske letade efter motoder som inte existerar. OCh tillslut har jag placerat in try-catch över allt i min kod där jag kan misstänka att det kan uppstå, men dessa vägrar fånga upp felet. Någon som vet om det kan vara apples kod för NSTableView eller något som har med den att göra som fixar felet? Ska påpeka att felet oftast uppstår vid scrollning i denna lista, speciellt om där är många rader i den.
Jag kör senaste dev kiten, dvs den som släpptes i dec,
Snälla hjälp mig suttit med felet allt för länge nu.

Det var ett par år sedan jag var en java-hacker, men jag kan väl försöka hjälpa till i alla fall. Istället för att ha try-catch där du _misstänker_ att det kan gå fel, ha det så att det täcker _all din kod_ och printa ut stacken när du fångar felet. Lycka till!

  • Oregistrerad
  • 2002-02-13 23:50

Hmm då blir det rätt många ställen att lägga till try-catch även om jag täckt de flesta metoderna redan, menar finns ingen java main fil utan istället körs det ifrån obj-c main fil eftersom jag använder obj-c med. Hmm annars hade man på en sek kunnat täcka alla ställen, dvs hela programmet ;).

[ 13 Februari 2002: Meddelandet ändrat av: Ekelund ]

public class AbstractMethodError

"Thrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only occur at run time if the definition of some class has incompatibly changed since the currently executing method was last compiled. "

Har du provat att kasta bort alla kompilerade klassfiler och objektkod?

Om inte en total omkompilering fungerar kanske det är någon mismatch i deklartionerna av det underliggande APIet och det egentliga APIet.

(Jag fortsätter med långskott)

  • Oregistrerad
  • 2002-02-14 11:02

Har prövat att kompilera om det och ta clean i project builder, hmm mismatch menar du antagligen fel i metod namnen eller liknande?

Jag tror att dom Java-wrappers som används för nativeanrop till det underliggande APIet inte stämmer med det underliggande APIet. Det som troligen har hänt är att Apple har ändrat i sitt API och du har en gammal beskrivning av det i din utvecklingsmiljö. Kolla om det finns updateringar, eller testa din applikation på en äldre version av OS X. Det kan vara en liten förändring som Apple har gjort, tex ändrat en parameter från short till long.

[ 14 Februari 2002: Meddelandet ändrat av: ace4711 ]

  • Oregistrerad
  • 2002-02-15 16:37

Hmm får väl ta och göra det då :/, hmm tradigt att det ska vara så här, nu gäller det bara att hitta en äldre osx maskin

1
Bevaka tråden