我只是想将自定义AndroidJUnitRunner
类从Java转换为Kotlin。
CustomTestRunner.java
public class CustomTestRunner extends AndroidJUnitRunner {
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws IllegalAccessException,
ClassNotFoundException, InstantiationException {
return super.newApplication(cl, TestApp.class.getName(), context);
}
}
CustomTestRunner.kt - (导致错误 - 请参阅下面的stacktrace)
class CustomTestRunner : AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader, className: String, context: Context): Application {
return super.newApplication(cl, TestApp::class.java.name, context)
}
}
的build.gradle
android {
defaultConfig {
testInstrumentationRunner "<>.CustomTestRunner"
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
androidTestCompile "org.jetbrains.kotlin:kotlin-stdlib:1.2.0"
}
D/AndroidRuntime( 4948): Shutting down VM
E/AndroidRuntime( 4959): FATAL EXCEPTION: main
E/AndroidRuntime( 4959): Process: <>.debug, PID: 4959
E/AndroidRuntime( 4959): java.lang.NoClassDefFoundError: kotlin.jvm.internal.Intrinsics
E/AndroidRuntime( 4959): at <>.newApplication(CustomTestRunner.kt)
E/AndroidRuntime( 4959): at android.app.LoadedApk.makeApplication(LoadedApk.java:511)
E/AndroidRuntime( 4959): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317)
E/AndroidRuntime( 4959): at android.app.ActivityThread.access$1500(ActivityThread.java:135)
E/AndroidRuntime( 4959): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
E/AndroidRuntime( 4959): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 4959): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 4959): at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime( 4959): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4959): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 4959): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime( 4959): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime( 4959): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 2870): Error in app <>.debug running instrumentation ComponentInfo{<>.debug.test/<>.CustomTestRunner}:
答案 0 :(得分:0)
您可能会缺少类路径依赖项:
buildscript {
. . .
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
}
}