我正在将Android项目迁移到AndroidX库。Butterknife 10.x改进了对此的支持,因此我认为使用它是很好的。我的项目是在Kotlin(1.3.30)中完成的。
大于8的Butterknife版本要求您使用Java 8,如下所示:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
这对于minsdk> = 24很有用。在很大程度上,它也适用于较低版本。但是随着Kotlin编译为Java 8,某些功能在minsdk <24上不起作用。例如我正在获得以下例外的那个。
java.lang.NoSuchMethodError: No static method hashCode(J)I in class Ljava/lang/Long; or its super classes (declaration of 'java.lang.Long' appears in /system/framework/core-libart.jar)
Long.hashCode()是Java 8中的新api,但在较早的android版本中不支持。这个问题通过告诉编译器使用Java 6解决了相同的问题,但是我对AndroidX需要的Butterknife 10.x不支持该问题。
我想这是一个很常见的问题,但是我还没有找到解决方案。我该如何解决?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句