didi / didi/booster

Benchmark 中添加 booster 编译失败

Open
#454 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.