
Avinash
Was sind die möglichen Ursachen für ABstractMethodError?
Ausnahme im Thread “pool-1-thread-1” java.lang.AbstractMethodError:
org.apache.thrift.ProcessFunction.isOneway()Z
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:51)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at com.gemfire.gemstone.thrift.hbase.ThreadPoolServer$ClientConnnection.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Dies bedeutet normalerweise, dass Sie eine alte Version einer Schnittstellenimplementierung verwenden, der eine neue Schnittstellenmethode fehlt. Beispielsweise hat die java.sql.Connection-Schnittstelle in 1.7 eine neue getSchema-Methode erhalten. Wenn Sie 1.6 JDBC-Treiber haben und Connection.getSchema aufrufen, erhalten Sie AbstractMethodError.
Die einfache Antwort lautet: Ein Code versucht, eine deklarierte Methode aufzurufen abstract
. Abstrakte Methoden haben keinen Körper und können nicht ausgeführt werden. Da Sie so wenig Informationen bereitgestellt haben, kann ich nicht näher darauf eingehen, wie dies passieren kann, da der Compiler dieses Problem normalerweise abfängt – wie hier beschrieben bedeutet dies, dass sich die Klasse zur Laufzeit geändert haben muss.
Aus Dokumentation v AbstractMethodError
Wird ausgelöst, wenn eine Anwendung versucht, eine abstrakte Methode aufzurufen. Normalerweise wird dieser Fehler vom Compiler abgefangen; Dieser Fehler kann nur zur Laufzeit auftreten, wenn sich die Definition einer Klasse inkompatibel geändert hat, seit die aktuell ausgeführte Methode zuletzt kompiliert wurde.
Eine Art Sonderfall der obigen Antwort.
Ich hatte diesen Fehler, weil ich a verwendet habe spring-boot-starter-parent
(z.B 2.1.0.RELEASE
verwendet Federversion: 5.1.2.RELEASE
) aber ich zudem enthalten a BOM
die auch einige Spring-Abhängigkeiten definierte, aber in einer älteren Version (z 5.0.9.RELEASE
).
Eine Sache, die Sie tun müssen, ist, Ihre zu überprüfen dependency tree
(in Eclipse können Sie zB die Abhängigkeitshierarchie verwenden), wenn Sie die gleichen Versionen verwenden.
Eine Lösung könnte also darin bestehen, dass Sie die Federabhängigkeiten in Ihrem aktualisieren BOM
eine andere könnte sein, dass Sie sie ausschließen (aber je nach Menge könnte dies hässlich sein).

Thanh Nhat
Wenn Sie eine Projekt-ZIP-Datei herunterladen, nachdem Sie sie entpackt und in Android Studio importiert haben, können Sie das Projekt nicht ausführen, da dieser Fehler aufgetreten ist.
Ich habe das Problem gelöst, indem ich mein Android Studio gelöscht und dann die neue Version heruntergeladen und installiert habe.
Ich hoffe wirklich, dass es hilft.

Gemeinschaft
Wenn Sie diesen Fehler bei den implementierten Methoden erhalten, stellen Sie sicher, dass Sie Ihre Abhängigkeiten korrekt hinzugefügt haben, wie in diesem Thread erwähnt.

Yutanpo
Wie Damian zitiert:
Normalerweise wird dieser Fehler vom Compiler abgefangen; Dieser Fehler kann nur zur Laufzeit auftreten, wenn […]
Ich hatte den gleichen Fehler, der nicht vom Compiler, sondern zur Laufzeit abgefangen wurde. Um es zu lösen, habe ich nur neu kompiliert, ohne den Code zu ändern.
10142900cookie-checkWarum erhalte ich java.lang.AbstractMethodError-Fehler?yes
Gib uns etwas Kontext, was versuchst du zu tun? Kann ein Versionsproblem sein! Die Methode, die Sie aufrufen oder die ein anderer Code aufruft, wird jetzt in eine abstrakte Methode umgewandelt.
– AllTooSir
31. Juli 2013 um 11:44 Uhr
Ich habe die Thrift-Version von hbase ausprobiert. Ich baue Thrift-Compiler und generierte Thrift-Dateien. und mit mvn mein Projekt erstellen, das auch die Version 0.9.0 von Apache Thrift Jars herunterlädt. das ist das gleiche, das ich benutze.
– Avinash
31. Juli 2013 um 11:56 Uhr