Benchmark 中添加 booster 编译失败
- Dominant language
- Kotlin
- Stars
- 5.1k
- Forks
- 591
- PR merge metrics
- No merged PRs in 30d
Description
Please provide the following informations.
- System version
- Java version
- Gradle version
- Android Gradle plugin version
- Booster version
- Stack traces
```
Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate.
at com.didiglobal.booster.gradle.AGPInterface$DefaultImpls.getVariant(AGPInterface.kt:277)
at com.didiglobal.booster.android.gradle.v7_0.V70.getVariant(V70.kt:70)
at com.didiglobal.booster.gradle.TransformInvocationKt.getVariant(TransformInvocation.kt:22)
at com.didiglobal.booster.gradle.TransformInvocationKt.getApplicationId(TransformInvocation.kt:51)
at com.didiglobal.booster.gradle.BoosterTransformInvocation.(BoosterTransformInvocation.kt:99)
at com.didiglobal.booster.gradle.BoosterTransform.transform(BoosterTransform.kt:50)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:284)
at com.android.build.gradle.internal.profile.NoOpAnalyticsService.recordBlock(NoOpAnalyticsService.kt:72)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:242)
at jdk.internal.reflect.GeneratedMethodAccessor3428.invoke(Unknown Source)
```
benchmark 的项目是 library,但是在 Transform 获取 variant 的时候没有对于 library 没有判断是否是测试。
com.didiglobal.booster.gradle.AGPInterface#getVariant
```kotlin
val TransformInvocation.variant: BaseVariant
get() = project.getAndroid().let { android ->
this.context.variantName.let { variant ->
when (android) {
is AppExtension -> when {
variant.endsWith("AndroidTest") -> android.testVariants.single { it.name == variant }
variant.endsWith("UnitTest") -> android.unitTestVariants.single { it.name == variant }
else -> android.applicationVariants.single { it.name == variant }
}
is LibraryExtension -> android.libraryVariants.single { it.name == variant }
else -> TODO("variant not found")
}
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.