簡體   English   中英

為什么我收到 java.lang.AbstractMethodError 錯誤?

[英]Why I am getting java.lang.AbstractMethodError errors?

ABstractMethodError 的可能原因是什么?

線程“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)

這通常意味着您使用的是舊版本的接口實現,它缺少新的接口方法。 例如 java.sql.Connection 接口在 1.7 中得到了一個新的 getSchema 方法。 如果您有 1.6 JDBC 驅動程序並調用 Connection.getSchema,您將得到 AbstractMethodError。

簡單的答案是這樣的:一些代碼試圖調用一個聲明為abstract的方法。 抽象方法沒有主體,無法執行。 由於您提供的信息太少,我無法詳細說明這是如何發生的,因為編譯器通常會捕獲此問題 - 如此處所述,這意味着該類必須在運行時發生更改。

來自AbstractMethodError的文檔

當應用程序嘗試調用抽象方法時拋出。 通常,這個錯誤會被編譯器捕獲; 如果自上次編譯當前執行的方法以來某些類的定義發生了不兼容的更改,則此錯誤只會在運行時發生。

上述答案的一種特例。

我有這個錯誤,因為我使用的是spring-boot-starter-parent (例如2.1.0.RELEASE使用 spring 版本: 5.1.2.RELEASE )但我包含了一個BOM ,它也定義了一些 spring 依賴項,但是在舊版本(例如5.0.9.RELEASE )。

所以要做的一件事是檢查您的dependency tree (在 Eclipse 中,例如,您可以使用 Dependency Hierarchy)如果您使用相同的版本。

因此,一種解決方案可能是升級BOM中的 spring 依賴項,另一種可能是排除它們(但取決於數量,這可能很難看)。

如果您下載任何項目 zip 文件,在解壓縮並導入 Android Studio 后,您將無法運行該項目,因為發生此錯誤。

我通過刪除我的 android studio 解決了這個問題,然后下載並安裝了新版本。

我真的希望它有所幫助。

如果您在已實現的方法上遇到此錯誤,請確保您已按照此線程中的說明正確添加了依賴項。

正如達米安所引用的:

通常,這個錯誤會被編譯器捕獲; 此錯誤只能在運行時發生,如果 [...]

我遇到了編譯器未捕獲但在運行時捕獲的相同錯誤。 為了解決這個問題,我只重新編譯而不對代碼進行任何修改。

如果您在使用 Proguard 的縮小版本中遇到此錯誤,請檢查該類是否為 POJO 類,如果是,則使用以下規則將其從 Proguard 中排除:

-keep class your.application.package.pojo.** {*;}

當我將 Eclipse 項目導入 intellij ide 時,我遇到了同樣的錯誤。我嘗試在沒有 .iml 文件的情況下導入它,然后我的問題解決了

當我將我的 kotlin 插件更新到新版本時出現此問題....問題是我的 pom 文件使用的是較舊的 kotlin 版本..我想如果他犯了這個錯誤可能會對某人有所幫助

我很少在 android 上收到各種這些和其他東西。我必須清理所有更改 som 配置重建更改配置以某種方式再次正常只是構建工具不會出於任何原因重建它們應該重建的一切(顯然是 Android gradle 錯誤)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM