您好,我们afterEvaluate在根目录中使用build.gradle来设置一些BuildConfig值并上传档案,但是在更新 gradle 插件之后
com.android.tools.build:gradle:4.0.1
Run Code Online (Sandbox Code Playgroud)
到
com.android.tools.build:gradle:4.1.0
Run Code Online (Sandbox Code Playgroud)
似乎afterEvaluate根本没有被触发。
知道如何解决这个问题吗?
build.gradle看起来像这样
subprojects{
...
android{
...
afterEvaluate { project ->
buildTypes.each { buildType ->
final String suffix = buildType.name == 'release' ? '' : ".${buildType.name}"
project.libraryApplicationIds.each { String constant, String libAppId ->
buildType.buildConfigField "String", constant, "\"$libAppId$suffix\""
buildType.manifestPlaceholders[constant] = "$libAppId$suffix"
}
}
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud) 将kover添加到项目后不久
classpath("org.jetbrains.kotlinx:kover:${PluginVersions.kover}")
apply plugin: 'kover'
Run Code Online (Sandbox Code Playgroud)
单元测试随机开始失败(但是在项目中没有 kover 的情况下它们运行没有任何失败)。我什至尝试禁用失败的测试,但越来越多的随机失败不断出现。
我们使用经典的 kotlin.test.Test 测试和一些库来帮助测试(io.mockk.mockk)。
知道什么可能导致这种情况吗?
Kover Gradle 插件版本:0.6.1
摇篮版本:7.4.2
堆栈跟踪:
java.lang.IllegalArgumentException: Unsupported class file major version 61
at net.bytebuddy.jar.asm.ClassReader.<init>(ClassReader.java:196)
at net.bytebuddy.jar.asm.ClassReader.<init>(ClassReader.java:177)
at net.bytebuddy.jar.asm.ClassReader.<init>(ClassReader.java:163)
at net.bytebuddy.utility.OpenedClassReader.of(OpenedClassReader.java:86)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3824)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2166)
at net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:224)
at net.bytebuddy.dynamic.scaffold.inline.AbstractInliningDynamicTypeBuilder.make(AbstractInliningDynamicTypeBuilder.java:123)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3595)
at io.mockk.proxy.jvm.transformation.InliningClassTransformer.transform(InliningClassTransformer.kt:78)
at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244)
at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541)
at java.instrument/sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
at java.instrument/sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:169)
at io.mockk.proxy.jvm.transformation.JvmInlineInstrumentation.retransform(JvmInlineInstrumentation.kt:28)
at io.mockk.proxy.common.transformation.RetransformInlineInstrumnetation$execute$1.invoke(RetransformInlineInstrumnetation.kt:19)
at io.mockk.proxy.common.transformation.RetransformInlineInstrumnetation$execute$1.invoke(RetransformInlineInstrumnetation.kt:6)
at io.mockk.proxy.common.transformation.ClassTransformationSpecMap.applyTransformation(ClassTransformationSpecMap.kt:41)
at io.mockk.proxy.common.transformation.RetransformInlineInstrumnetation.execute(RetransformInlineInstrumnetation.kt:16)
at io.mockk.proxy.jvm.ProxyMaker.inline(ProxyMaker.kt:88)
at io.mockk.proxy.jvm.ProxyMaker.proxy(ProxyMaker.kt:30)
at io.mockk.impl.instantiation.JvmMockFactory.newProxy(JvmMockFactory.kt:34)
at io.mockk.impl.instantiation.AbstractMockFactory.newProxy$default(AbstractMockFactory.kt:29)
at io.mockk.impl.instantiation.AbstractMockFactory.mockk(AbstractMockFactory.kt:59)
at packagename.base.user.web.repository.UserWebMergeRepositoryTest$test$1.invokeSuspend(UserWebMergeRepositoryTest.kt:89)
at packagename.base.user.web.repository.UserWebMergeRepositoryTest$test$1.invoke(UserWebMergeRepositoryTest.kt)
at …Run Code Online (Sandbox Code Playgroud)