簡體   English   中英

'java.lang.NoClassDefFoundError java.lang.ClassNotFoundException 導致的 Ljava/util/Base64 解析失敗 未找到 class “java.util.Base64”

[英]'java.lang.NoClassDefFoundError Failed resolution of Ljava/util/Base64 caused by java.lang.ClassNotFoundException Didn't find class "java.util.Base64"

I am getting this error and I have read that to solve it I have to replace import java.util.Base64 with import android.util.Base64 but in my whole project I only found this only usage of Base68 result = Base64.getEncoder().encodeToString(macData); 我應該如何解決它? 而且我不能用 android.util.Base.64 替換 java.util.Base64 因為這行代碼在后端

不幸的是 - 這意味着您正在使用某個庫,並且庫正在嘗試使用java.util.Base64 Android 拾取了 java 庫,就像 android 發布時一樣,現在已經很久了。 從那以后,它們還沒有真正更新過。 (那個 oracle v 谷歌法庭可能沒有幫助......)

juBase64是在java 版本 8中添加的(有關此信息,請參見 javadoc 中的“since”行;任何“1.6”或以下,或者如果沒有“since”行,則在 ZC31B32364CE1ECCE58ZFCD 上肯定有其他東西。 )。 java 8 現在已有 7 年歷史,因此並非專門為 android 設計的庫越來越有可能開始使用這些非 Android 庫調用。

檢查堆棧跟蹤,您會找到執行此操作的庫。 恐怕除了停止使用這個庫之外別無他法。 您可以嘗試在您的應用程序中粘貼 juBase64 impl,但這將相對棘手,因為這可能涉及一些法律問題,因此,要么沒有人這樣做,要么如果他們這樣做,他們可能不會公開如何做。

您可以要求此庫使用第三方庫來執行 base64 工作,但他們可能不想這樣做,這可能不是導致它無法在 android 上運行的庫的唯一問題。

如果 android 變體是一個替代品,你可以重寫這個庫的 class 文件,但這也是一個有點笨拙的,hacky 的概念,並不是很難,而是因為它不是一件正常的事情,而且通常非常不喜歡,我認為您無法輕松找到有關如何操作的文檔。

因此,建議:嘗試尋找另一個庫。

暫無
暫無

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

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