在Android / Kotlin上加倍的字符串
我必须使用Kotlin将字符串转换为Android上的双精度字符串。
以下是应该在Kotlin工作,但不(没有这样的方法):
var dbl = "1.0".toDouble()
以下爪哇方式也不起作用:
var dbl = Double.parseDouble("1.0")
显然, Android上的String类既没有Kotlin API,Double也没有常用的Java API?
是否有任何与Kotlin 在Android上的 优雅方式?
现在,我正在使用这个( 这个工作 ,但它是丑陋的):
var dbl = java.lang.Double.parseDouble("1.0")
该项目刚刚使用Android Studio创建,使用以下版本:
ext.kotlin_version = '1.1.51' minSdkVersion 23 targetSdkVersion 26
因为我认为这是Android API和Kotlin API之间的一些不匹配。
该方法在那里,它不应该给你没有方法的例外。
尝试一个干净的Android版本。 Kotlin的问题跟踪器上存在一个错误 ,Gradle构建任务并没有完全定义所有需要干净构建的偶然事件。 这已经被修复为最新版本的Kotlin。
我会遵循几个步骤来尝试解决这个问题:
- 清理构建
- 升级到最新的Kotlin版本。 在写这篇文章的时候是
1.1.60
。 - 确保您使用的是Gradle和Android Studio的最新版本。 我的团队目前正在使用Gradle
4.3.1
和Android Plugin3.0.0
- 如果这些不起作用,我会将所有的IDE数据从项目中删除。 (包括隐藏的
.gradle
和.idea
文件夹),然后将您的项目重新导入到Android Studio中,然后重试。
这个方法肯定是存在的,我可以使用它。
作为简单地让你再次移动并解除阻止的一种方法,如果上述不起作用,你总是可以自己添加下面的函数到你的应用程序,它也应该工作:
public inline fun String.toDouble(): Double = java.lang.Double.parseDouble(this)