由Kotlin方法导致的Android 4.x VerifyError

最近我开始玩Kotlin语言,我尝试运行一个非常简单的应用程序。 我有两个文件:MainActivity.kt和几个kotlin方法的VersionSupport.kt。

Android 5.x和6.0版本的Nexus 5(真实设备和模拟器)上的应用程序没有任何问题。 当我尝试在OS的4.x版本上运行应用程序时,问题就开始了。

在我的MainActivity中:

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) textView.apply { text = "Hello kotlin!" } supportsKitKat { longToast("kitKat") } } 

这里是支持方法的实现

 public fun supportsKitKat(code: () -> Unit) { supportsVersion(code, Build.VERSION_CODES.KITKAT) } private fun supportsVersion(code: () -> Unit, sdk: Int) { if(Build.VERSION.SDK_INT >= sdk) { code.invoke(); } 

我使用android studio 2.0 preview 3b和kotlin 1.0.0-beta-4583

 FATAL EXCEPTION: main java.lang.VerifyError: pl/kpob/bootstrap/utils/VersionSupportKt at pl.kpob.bootstrap.MainActivity.onCreate(MainActivity.kt:21) at android.app.Activity.performCreate(Activity.java:5008) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

Kotlin beta 4与Android Studio的即时运行功能不兼容。 您需要关闭即时运行。 不兼容性将在Kotlin的下一次更新中得到解决。