Kotlin:类型'Int'的表达式'length'不能作为一个函数被调用。 找不到函数“invoke()”

我试图解决一个古老的kotlin项目的问题。 但问题是我无法编译代码。 我试着编译并运行在Android Studio和IntelliJ。 我得到了同样的错误。

这里是错误:

Error:(174, 25) Expression 'length' of type 'Int' cannot be invoked as a function. The function 'invoke()' is not found Error:(176, 60) Unresolved reference: charAt Error:(148, 67) Expression 'size' of type 'Int' cannot be invoked as a function. The function 'invoke()' is not found Error:(107, 76) Expression 'ordinal' of type 'Int' cannot be invoked as a function. The function 'invoke()' is not found 

我的gradle脚本:

 buildscript { ext.kotlin_version = '1.0.4' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' classpath 'com.google.gms:google-services:1.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' } } . . apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { . . sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 

对于序号错误:

 //enum class enum class Category(val n:Int, val color:Int, val id : String){ HEADLINE(R.string.category_headline, Color.parseColor("#EC4A42"), "101"), . . } //where call ordinal func intent.putExtra(MainActivity.EXTRA_CATEGORY, Category.HEADLINE.ordinal()) 

对于charAt错误:

 companion object{ fun trim(s : CharSequence) : CharSequence{ var start = 0 var end = s.length() while (start < end && Character.isWhitespace(s.charAt(start))) { start++ } while (end > start && Character.isWhitespace(s.charAt(end - 1))) { end-- } return s.subSequence(start, end) } } 

对于长度():

  companion object{ fun trim(s : CharSequence) : CharSequence{ var start = 0 var end = s.length() while (start < end && Character.isWhitespace(s.charAt(start))) { start++ } while (end > start && Character.isWhitespace(s.charAt(end - 1))) { end-- } return s.subSequence(start, end) } } 

size()用法:

 class PhotoGalleryAdapter(val ac : Activity, val result : ResponseNewsDetail) : PagerAdapter(){ override fun getCount(): Int = result.gallery!!.size() . . } 

任何想法/建议,将不胜感激。 干杯!

所有那些int返回的方法( String#length() ,…)早就成为了属性。 只要删除括号()并以属性的方式使用它。

  var start = 0 var end = s.length //without () 

顺便说一句。 String已经有一个方法trim()

charAt应该用[]运算符替换。 所以用s[end-1]替换s.charAt(end-1)