android - java.lang.NoClassDefFoundError : kotlin. jvm.internal.Intrinsics - newApplication

标签 android kotlin android-espresso android-instrumentation

问题

我只是想将自定义 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 -(导致错误 - 请参阅下面的堆栈跟踪)

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}:

最佳答案

你可能缺少类路径依赖:

buildscript {
    . . . 
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
    }
}

关于android - java.lang.NoClassDefFoundError : kotlin. jvm.internal.Intrinsics - newApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193132/

相关文章:

android - Http 302 重定向到深层链接在 Android 中不起作用

Android chrome不会在html中播放本地声音文件

android - 无法使用 CameraX 将捕获的图像保存到外部媒体目录

android - 实时数据 : Candidate resolution will be changed soon

android - Android Kotlin-对话框 fragment 错误(以下任何函数均不能使用提供的参数来调用)

Android Studio Espresso 空测试套件

android - 简单 Espresso 测试 "Looped for x iterations over 60sec"错误

java - 在 android 中执行 OAUth 身份验证

java - android 网络服务 mysql

Android Espresso - java.lang.OutOfMemoryError : GC overhead limit exceeded