首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在minsdk <24上使用Kotlin和Butternache10.1.0?

如何在minsdk <24上使用Kotlin和Butternache10.1.0?
EN

Stack Overflow用户
提问于 2019-04-15 20:27:16
回答 2查看 169关注 0票数 3

我正在将我的Android项目迁移到AndroidX库中。蝶形刀10.x已经改进了对它的支持,所以我认为使用它是很好的。我的项目是用Kotlin (1.3.30)制作的。

大于8的Butterknife版本要求您使用Java 8,如下所示:

代码语言:javascript
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

这对minsdk >=24非常有效。对于一个好的部分,它也可以与较低的版本一起工作。但是,当Kotlin编译到Java8时,一些特性在minsdk <24上不起作用。例如,我为其获取以下异常的那个。

代码语言:javascript
复制
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()是Java8中的一个新接口,但在较老的安卓版本中不受支持。This question通过告诉编译器使用Java6解决了同样的问题,但我的AndroidX所需的Butternache10.x不支持这一点。

我想这是一个很常见的问题,但我还没有找到解决方案。我该如何解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-17 03:46:04

这个问题与使用Kotlin 1.3.30 (参见This issue)有关。我已经使用Kotlin 1.3.21暂时修复了这个问题。在未来的D8版本中,Long和Char的静态方法也将被去掉Issue here的代码。它已经修复了,但在它达到D8的稳定版本之前,还需要一些时间。在那之后,这将不再是一个问题。

票数 1
EN

Stack Overflow用户

发布于 2019-04-15 20:34:29

当你有Kotlin android extensions的时候,你真的不需要胡言乱语。使用它要简单得多。

如下所示:

代码语言:javascript
复制
myTextView.text = "Hello World!"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55689197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档