在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。

我会遵循几个步骤来尝试解决这个问题:

  1. 清理构建
  2. 升级到最新的Kotlin版本。 在写这篇文章的时候是1.1.60
  3. 确保您使用的是Gradle和Android Studio的最新版本。 我的团队目前正在使用Gradle 4.3.1和Android Plugin 3.0.0
  4. 如果这些不起作用,我会将所有的IDE数据从项目中删除。 (包括隐藏的.gradle.idea文件夹),然后将您的项目重新导入到Android Studio中,然后重试。

这个方法肯定是存在的,我可以使用它。

作为简单地让你再次移动并解除阻止的一种方法,如果上述不起作用,你总是可以自己添加下面的函数到你的应用程序,它也应该工作:

 public inline fun String.toDouble(): Double = java.lang.Double.parseDouble(this)