我用kotlin创建了一个新项目 并创建一个文件来执行主要的乐趣,但得到了一个ClassNotFoundException 做了很多研究,但没有得到解决方案。从网站听到,它可能是android studio的bug。 我不知道,所以问一下
Exception in thread "main" java.lang.ClassNotFoundException: com.jafir.teststepsensor.TestDelegation
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:107)
这是app中的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.jafir.teststepsensor"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
这是项目中的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlinVersion = '1.1.51'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
的gradle:
gradle: gradle-4.1-all
代码:
object TestDelegation {
@JvmStatic
fun main(array: Array<String>) {
println("main")
}
}
我只是简单地创建一个对象类,想要像java一样执行主要的乐趣 它抛出了这个。
但是当我将gradle恢复为3.3-all并将gradle.build.tool恢复为2.3.3时 没关系 我不知道为什么.. Maby它与gradle和gradle构建工具的版本相关
答案 0 :(得分:1)
这是main
函数。不支持在Android Studio for Kotlin中运行main
功能。你可以为Java而不是Kotlin做到这一点。
您可以使用object
或Class
,但它不会起作用,因为Android工作室不支持它。有一个错误提交:https://issuetracker.google.com/issues/68021152
答案 1 :(得分:-2)
Android studio不支持主要功能。 您的代码似乎不适用于Android,因此您可以在Eclipse上进行测试。