簡體   English   中英

沒有 static 方法 ThreadLocal.withInitial():commons-io 依賴

[英]No static method ThreadLocal.withInitial() : commons-io dependency

我在我的 Android Studio 項目中使用 commons-io 依賴項。

implementation 'commons-io:commons-io:2.11.0'

但我在 Crashlytics 中看到了這些奇怪的崩潰。 這些崩潰出現在 Android 7 及更低版本上。

Fatal Exception: java.lang.NoSuchMethodError: No static method withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal; in class Ljava/lang/ThreadLocal; or its super classes (declaration of 'java.lang.ThreadLocal' appears in /system/framework/core-oj.jar)
   at org.apache.commons.io.IOUtils.<clinit>(IOUtils.java:183)
   at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:534)

我還在我的項目中包含了 Java 8 兼容性。

android {

...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
        jvmTarget = "1.8"
    }
}

內部 commons-io 正在使用 ThreadLocal#withInitial API 這不是 脫糖庫的一部分,因此該方法不適用於 API 級別低於 26 (Android OREO)

要了解有關此內容的更多信息,您可以在 google issue tracker 上閱讀此線程的討論。

解決方案:

我們可以使用未使用 ThreadLocal API 的以前版本的 commons-io。 所以我最終使用了implementation 'commons-io:commons-io:2.5'

暫無
暫無

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

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