小编tug*_*epe的帖子

Kotlin JaCoCo - IllegalClassFormatException。请提供原始的非仪器类

我正在尝试获取 Android 应用程序模块的测试覆盖率报告并执行testVariantBuildTypeUnitTest任务。

尽管所有测试均已通过,但TEST-classNameTest.xml文件包含以下错误消息。仅当包含从 Kotlin 调用 Java 的方法时才会出现此错误。这个问题有什么解决办法吗?

**Caused by: java.lang.IllegalStateException: Cannot process instrumented class... Please supply original non-instrumented classes.
at org.jacoco.agent.rt.internal_f3994fa.core.internal.instr.InstrSupport.assertNotInstrumented(InstrSupport.java:238)
at org.jacoco.agent.rt.internal_f3994fa.core.internal.instr.ClassInstrumenter.visitField(ClassInstrumenter.java:56)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassVisitor.visitField(ClassVisitor.java:339)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.readField(ClassReader.java:1111)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.accept(ClassReader.java:713)
at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.accept(ClassReader.java:401)
at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:90)
at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:108)
Run Code Online (Sandbox Code Playgroud)

我们有多模块 android 项目,因此我们使用这个自定义 Jacoco 任务来获取覆盖率报告:

project.afterEvaluate {

    (android.hasProperty('applicationVariants')
            ? android.'applicationVariants'
            : android.'libraryVariants')
            .all { variant ->
                def variantName = variant.name
                def unitTestTask = "test${variantName.capitalize()}UnitTest"

                def jacocoReportName = unitTestTask + project.name

                tasks.create(name: jacocoReportName, type: JacocoReport, dependsOn: [
                        "$unitTestTask"
                ]) …
Run Code Online (Sandbox Code Playgroud)

java android unit-testing jacoco kotlin

15
推荐指数
1
解决办法
2万
查看次数

网络检查器不会替换状态代码 - Android Studio Flamingo

我正在尝试网络流量检查器,这是 Android Studio Flamingo 的一项新功能。我正在尝试将状态代码为 400 的响应的状态代码更改为 200。

在规则添加过程中,我按顺序尝试了以下步骤。

  • 我在“协议”、“主机 URL”、“路径”和“方法”字段中输入了尝试请求的端点信息。

  • 我标记了“Apple 状态规则:”400

  • 我将“替换为状态代码:”字段标记为 200

  • 在正文规则部分中,我输入了要返回的 json 正文并标记了“替换整个正文”。

  • 然后,我尝试向同一端点发送请求。

在 Network Inspector -> Connection View 中,端点请求的状态代码为 200,并且正文似乎已按照我的意愿进行了更改。但是, Retrofit中只有主体发生变化,状态代码仍为 400。因此,我无法在代码中测试成功案例。当我查看Okhttp日志时,我看到状态代码为 400 Bad Request,但正文是我所期望的。

这里有一个关于 Network Inspector 的问题,但尚未解决。有人面临这个问题吗?

问候
图杰。

android-studio retrofit2 app-inspection

7
推荐指数
1
解决办法
708
查看次数