didi / booster

🚀Optimizer for mobile applications
https://booster.johnsonlee.io
Apache License 2.0
4.87k stars 580 forks source link

Build FAILED: NoSuchElementException: Collection is empty. #2

Closed donglua closed 5 years ago

donglua commented 5 years ago
 ! Unresolvable symbol R.bool.abc_config_closeDialogWhenTouchOutside : com/tencent/liteav/muxer/R$bool.<clinit>()V 
 ! Unresolvable symbol R.color.abc_tint_switch_thumb : com/tencent/liteav/muxer/R$color.<clinit>()V 
 x com/github/chrisbanes/photoview/BuildConfig.DEBUG : Z
 x com/github/chrisbanes/photoview/BuildConfig.VERSION_CODE : I
 ! Unresolvable symbol R.style.Base_V11_Theme_AppCompat_Dialog : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Base_V11_Theme_AppCompat_Light_Dialog : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Base_V11_ThemeOverlay_AppCompat_Dialog : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Base_V12_Widget_AppCompat_AutoCompleteTextView : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Base_V12_Widget_AppCompat_EditText : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Platform_V11_AppCompat : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Platform_V11_AppCompat_Light : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Platform_V14_AppCompat : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Platform_V14_AppCompat_Light : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Info : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Info_Media : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Line2 : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Line2_Media : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Media : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Time : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Time_Media : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Title : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_AppCompat_Notification_Title_Media : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_StatusBar_EventContent : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_StatusBar_EventContent_Info : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_StatusBar_EventContent_Line2 : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_StatusBar_EventContent_Time : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.TextAppearance_StatusBar_EventContent_Title : com/tencent/liteav/muxer/R$style.<clinit>()V 
 x com/github/moduth/blockcanary/BuildConfig.DEBUG : Z
 x com/github/moduth/blockcanary/BuildConfig.VERSION_CODE : I
 ! Unresolvable symbol R.style.Widget_AppCompat_NotificationActionContainer : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.style.Widget_AppCompat_NotificationActionText : com/tencent/liteav/muxer/R$style.<clinit>()V 
 ! Unresolvable symbol R.string.abc_action_bar_home_description_format : com/tencent/liteav/muxer/R$string.<clinit>()V 
 ! Unresolvable symbol R.string.abc_action_bar_home_subtitle_description_format : com/tencent/liteav/muxer/R$string.<clinit>()V 
 x io/objectbox/android/BuildConfig.DEBUG : Z
 x io/objectbox/android/BuildConfig.VERSION_CODE : I
 x android/support/multidex/BuildConfig.DEBUG : Z
 x android/support/multidex/BuildConfig.VERSION_CODE : I
 ! Unresolvable symbol R.layout.abc_action_bar_view_list_nav_layout : com/tencent/liteav/muxer/R$layout.<clinit>()V 
 x com/airbnb/mvrx/BuildConfig.DEBUG : Z
 x com/airbnb/mvrx/BuildConfig.VERSION_CODE : I
 x com/bilibili/socialize/share/BuildConfig.DEBUG : Z
 x com/bilibili/socialize/share/BuildConfig.VERSION_CODE : I
 ! Unresolvable symbol R.styleable.PlaybackControlView_controller_layout_id : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_fastforward_increment : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_rewind_increment : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_show_timeout : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_controller_layout_id : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_default_artwork : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_fastforward_increment : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_hide_on_touch : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_player_layout_id : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_resize_mode : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_rewind_increment : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_show_timeout : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_surface_type : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_use_artwork : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_use_controller : com/tencent/liteav/txcvodplayer/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_controller_layout_id : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_fastforward_increment : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_rewind_increment : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.PlaybackControlView_show_timeout : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_controller_layout_id : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_default_artwork : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_fastforward_increment : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_hide_on_touch : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_player_layout_id : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_resize_mode : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_rewind_increment : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_show_timeout : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_surface_type : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_use_artwork : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 
 ! Unresolvable symbol R.styleable.SimpleExoPlayerView_use_controller : com/tencent/ijk/media/exo/R$styleable.<clinit>()V 

...

> Task :app:transformClassesWithBoosterForOfficialDebug FAILED
:app:transformClassesWithBoosterForOfficialDebug spend 13765ms

...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithBoosterForOfficialDebug'.
> Collection is empty.
johnsonlee commented 5 years ago

麻烦提供详细的堆栈信息,可以通过下面的命令:

./gradlew assembleOfficialDebug -S
donglua commented 5 years ago

> Task :app:transformClassesWithBoosterForMinApi21OfficialDebug FAILED
:app:transformClassesWithBoosterForMinApi21OfficialDebug spend 19598ms
      00:19.59   :app:transformClassesWithBoosterForMinApi21OfficialDebug
      00:04.37   :app:compileMinApi21OfficialDebugJavaWithJavac
      00:00.84   :app:kaptGenerateStubsMinApi21OfficialDebugKotlin
      00:00.68   :app:kaptMinApi21OfficialDebugKotlin
      00:00.38   :app:mergeMinApi21OfficialDebugResources
      00:00.34   :app:preMinApi21OfficialDebugBuild
      00:00.33   :app:transformClassesWithAjxForMinApi21OfficialDebug
      00:00.28   :app:compileMinApi21OfficialDebugKotlin
      00:00.18   :app:processMinApi21OfficialDebugResources
      00:00.08   :app:dataBindingGenBaseClassesMinApi21OfficialDebug
      00:00.07   :app:dataBindingMergeDependencyArtifactsMinApi21OfficialDebug
      00:00.06   :app:mergeMinApi21OfficialDebugAssets
      00:00.06   :app:checkMinApi21OfficialDebugDuplicateClasses
      00:00.05   :app:dataBindingMergeGenClassesMinApi21OfficialDebug

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithBoosterForMinApi21OfficialDebug'.
> Collection is empty.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithBoosterForMinApi21OfficialDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.accept(ExecuteActionsTaskExecuter.java:121)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.accept(ExecuteActionsTaskExecuter.java:117)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:184)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:110)
    at org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
    at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
    at org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.util.NoSuchElementException: Collection is empty.
    at kotlin.collections.CollectionsKt___CollectionsKt.single(_Collections.kt:501)
    at com.didiglobal.booster.transform.lint.LintTransformer.onPostTransform(LintTransformer.kt:48)
    at com.didiglobal.booster.transform.asm.AsmTransformer.onPostTransform(AsmTransformer.kt:42)
    at com.didiglobal.booster.gradle.BoosterTransformInvocation.onPostTransform(BoosterTransformInvocation.kt:80)
    at com.didiglobal.booster.gradle.BoosterTransform.transform(BoosterTransform.kt:41)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
    at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
    at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
    at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
    at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
    at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
    at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
    at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
    at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
    at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
    at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
    at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
    at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
    at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
    at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
    at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
    at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
    at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
    at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
    ... 40 more

* Get more help at https://help.gradle.org

BUILD FAILED in 28s
29 actionable tasks: 2 executed, 1 from cache, 26 up-to-date
johnsonlee commented 5 years ago

麻烦提供一下 Android Gradle Plugin 的版本

donglua commented 5 years ago

Android Gradle Plugin:com.android.tools.build:gradle:3.4.0 Gradle 版本:5.2.1

johnsonlee commented 5 years ago

把 Android Gradle Plugin 的版本降到 3.2.0 试试

donglua commented 5 years ago
Caused by: java.util.NoSuchElementException: Collection is empty.
    at kotlin.collections.CollectionsKt___CollectionsKt.single(_Collections.kt:501)
    at com.didiglobal.booster.transform.lint.LintTransformer.onPostTransform(LintTransformer.kt:48)
    at com.didiglobal.booster.transform.asm.AsmTransformer.onPostTransform(AsmTransformer.kt:42)
    at com.didiglobal.booster.gradle.BoosterTransformInvocation.onPostTransform(BoosterTransformInvocation.kt:80)
    at com.didiglobal.booster.gradle.BoosterTransform.transform(BoosterTransform.kt:41)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)

这里的LintTransformer第48行是不是应该判断判断一下single()的返回值是否是空数组:

val manifest = context.artifacts.get(ArtifactManager.MERGED_MANIFESTS).single().file("AndroidManifest.xml")
johnsonlee commented 5 years ago

这是 Android Gradle Plugin 3.4+ 版本内部结构的变化导致

johnsonlee commented 5 years ago

试试 ext.booster_version = 0.1.1-SNAPSHOT,在 repositories 里加上:

maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
donglua commented 5 years ago

0.1.1-SNAPSHOT

0.1.1-SNAPSHOT可以了

johnsonlee commented 5 years ago

Booster v0.1.1 has been released