Я переношу свой проект Android в библиотеки AndroidX.Butterknife 10.x имеет улучшенную поддержку, так что я думаю, что это полезно.Мой проект сделан в Kotlin (1.3.30).
Версии Butterknife> 8 требуют использования Java 8 следующим образом:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Это прекрасно работает для minsdk> = 24.И в значительной степени это работает и с более низкими версиями.Но поскольку Kotlin компилируется в Java 8, некоторые функции не работают на minsdk <24.Например, тот, для которого я получаю следующее исключение. </p>
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 () - это новый API в Java 8, но не поддерживается в более старых версиях Android. Этот вопрос решает ту же проблему, сообщая компилятору использовать Java 6, но это не поддерживается с Butterknife 10.x, который мне нужен для AndroidX.
Полагаю, это довольно распространенная проблема, но я не нашел решения для этого.Как я могу решить это?