Kotlin RC NoClassDefFoundError

更新kotlin RC-1036后,我面临一个奇怪的问题:我的代码甚至没有编译和打包。

当构建通过和应用程序启动时,我得到了ClassNotFoundException: Didn't find class "example.myapplication.MainActivity"

我试图用apktool反编译apk文件,没有找到我的类内的档案。 build/intermediates dir中也没有类。

这是我的项目:

app/build.gradle

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' buildscript { ext.kotlin_version = '1.0.0-rc-1036' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() } android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "example.myapplication" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false } } sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 

表现:

 <?xml version="1.0" encoding="utf-8"?> <manifest package="example.myapplication" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> 

和主要活动:

 package example.myapplication import android.support.v7.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) hello.text = "New text" } } 

构建工具版本是2.0.0-beta2 ; 可能是sourseSets错了,虽然没有用,如果我尝试重新配置它莫名其妙。 感谢任何帮助。

你应该有这两个插件:

 apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 

第一个确保Kotlin代码编译,第二个用于UI导入。