簡體   English   中英

java.lang.NoClassDefFoundError:更新 Gradle Android 插件時失敗的解析:Landroidx/work/R

[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/R when updating Gradle Android Plugin

我開始更新我的一個舊項目的依賴項,但隨后注意到應用程序在一些 dep 更新后沒有啟動 - 它顯示java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/R$bool異常。 這可能是因為在啟動時我重新安排了一個 Worker 來做一些周期性的 IO。

我將其縮小到com.android.tools.build:gradle:3.5.1 -> com.android.tools.build:gradle:3.6.1build.gradle更改,這確實與文檔相對應但這並不幫助很大。

有關出現問題的當前設置的更多上下文:

  • 我將舊的類路徑和版本用於implementation "android.arch.work:work-runtime-ktx:1.0.1"的工作庫

  • 我嘗試在測試項目中重現此設置但沒有成功,這可能表明這是某種緩存問題。 我嘗試用rm -rf ~/.gradle/caches刪除它們,但這沒有幫助

  • Android Studio 還在WorkManagerImpl.java文件(來自工作庫源)中顯示此問題,這表明這確實不是 gradle 緩存問題

編輯 1:我嘗試刪除androidx:work包使用,並且此異常是由androidx組中的另一個支持庫引發的。 這讓我注意到有一些其他一些時髦的類處理正在進行。

編輯 2:我找到了解決方案,這適用於任何android.support庫 - 一個 gradle 插件realm-android搞砸了構建,所以更新它似乎解決了這個問題。 其他代碼生成插件可能會出現類似的問題。

任何有關如何處理此問題的提示將不勝感激

正如 OP 所說,它也可以是任何其他插件或依賴項。 就我而言,錯誤來自 ObjectBox 插件。

將 ObjectBox 從 2.5 更新到 2.6 為我解決了這個問題。

objectboxVersion = '2.6.0'

但是,我需要將以下行添加到我的 build.gradle 中,以便 ObjectBox 再次工作。

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8
    }

暫無
暫無

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

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