5

After update to Java 11 got an error in Android Studio by ./gradlew lintFooDebug command.

* What went wrong:

Execution failed for task ‘foo:syncDebugLibJars'.
> NestMember requires ASM7

• Ran ./gradlew dependencyReport. Fixed all asm versions be 7.

• Searched inside files for asm text - didn't find any suspicious.

• Added implementation "org.ow2.asm:asm:7.0" to all build.gradle files. Just in case.

• Ran ./gradlew lintFooDebug --scan with scan flag to get detailed info:

    Caused by: java.lang.UnsupportedOperationException: NestMember requires ASM7    
at org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:251)    
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:663)   
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:394)   
        at com.android.builder.packaging.TypedefRemover.rewriteOuterClass(TypedefRemover.java:239)  
        at com.android.builder.packaging.TypedefRemover.filter(TypedefRemover.java:139) 
        at com.android.builder.packaging.JarFlinger.addDirectory(JarFlinger.java:107)   
        at com.android.build.gradle.internal.tasks.LibraryAarJarsTask$Companion.mergeInputsToLocation(LibraryAarJarsTask.kt:251)    
        at com.android.build.gradle.internal.tasks.LibraryAarJarsTask$Companion.mergeInputs(LibraryAarJarsTask.kt:166)  
        at com.android.build.gradle.internal.tasks.LibraryAarJarsTask.doTaskAction(LibraryAarJarsTask.kt:120)   
        at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63) 
        at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)    
        at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:94)  
        at jdk.internal.reflect.GeneratedMethodAccessor1778.invoke(Unknown Source)  
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)   
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)   
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) 
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)   
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)   
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:498)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) 
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)  
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) 
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)    
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)  
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:483)    
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:466)   
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:105)   
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:270) 
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:248)    
        at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:83) 
        at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37)  
        at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)  
        at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)  
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) 
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) 
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)    
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)   
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) 
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:47) 
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37) 
        at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68) 
        at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38) 
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50) 
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36) 
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) 
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)   
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) 
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51) 
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29) 
        at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54)   
        at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)   
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)   
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)   
        at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)  
        at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)   
        at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)   
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40) 
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29) 
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) 
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) 
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)    
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)  
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)   
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)   
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:84)   
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:41)   
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)    
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)    
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91) 
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49) 
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:78) 
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:49) 
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:105)  
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:50)   
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)    
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86) 
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32) 
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)  
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)   
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)   
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)    
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:283)    
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40) 
        at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) 
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) 
        at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) 
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:49)   
        at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)   
        at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)  
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:184)   
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:173)  
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)    
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)   
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)   
        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:77)   
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)  
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)  
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)    
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) 
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)  
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) 
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)    
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)   
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) 
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) 
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)   
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)   
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)   
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)  
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)  
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)  
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)   
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)   
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)   
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)   
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)    
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

Maybe you have some ideas how to fix it?

Yvgen
  • 2,036
  • 2
  • 23
  • 27
  • 2
    The ASM library is up to date. The software using ASM is not. In this stack trace, it’s the classes in the `com.android.builder.packaging` package. – Holger Aug 09 '21 at 10:08
  • ASM is interesting, because there's the version of the library and then each software *using* ASM also specifies what version it knows/accepts using [constants like these](https://asm.ow2.io/javadoc/org/objectweb/asm/Opcodes.html#ASM7). So if the software passes in `ASM6` there, then upgrading to a 7.x version of ASM won't change the behaviour. That's because upgrading to ASM7 would also mean implementing additional callbacks and isn't just a drop-in replacement. – Joachim Sauer Aug 10 '21 at 12:56
  • 2
    It depends on what the software is doing with ASM. Certain use cases could work with a newer version whereas others, especially involving subclasses of ASM’s classes require the reference version number, to denote whether (not) overriding visitor methods is intentional. Compare with [this answer](https://stackoverflow.com/a/63408495/2711488)… – Holger Aug 10 '21 at 18:07

7 Answers7

6

There is an open bug in the AGP that causes this error:

TypedefRemover uses ASM5 and is incompatible with JDK 11 sources that require ASM7

The fix will be shipped in AGP 7.1-alpha08 and 7.0.1.


Update 20/08/21: the fix is already available in com.android.tools.build:gradle:7.0.1

David Miguel
  • 12,154
  • 3
  • 66
  • 68
  • I am using com.android.tools.build:gradle:7.0.4 but still getting the same issue. Can you please look in to this thread https://stackoverflow.com/questions/70246286/android-this-feature-requires-asm7 – Nouman Bhatti Jan 26 '22 at 07:15
1

Recently on my project I have seen a similar error.

Execution failed for task ':app:dexBuilderProdDebug'.
> java.lang.UnsupportedOperationException: NestHost requires ASM7

We don't use ASM directly in the project and so this is some problem from one of our dependencies.

The project itself has not been updated to JDK11 yet. We have begun to look into it on a separate git branch, but we saw this problem appearing before we started there.

Shortly before hand we had updated kotlin version and some of our other dependency versions.

The workaround solution for us is fairly simple if a tad tiresome after a while.

Selecting the very top entry in the build window which shows Build: failed will update the detail window to the right hand side, and this will show a Run with --stacktrace option. Selecting this will rebuild our project successfully every time. I'd love to know why this is the case, but haven't had time to investigate thoroughly yet.

enter image description here

Dharman
  • 30,962
  • 25
  • 85
  • 135
Chris
  • 4,662
  • 2
  • 19
  • 27
0

This is not the common Java dependency issue (at least not one from the Java project itself), but rather an AGP issue. Therefore you don't have to update Java project dependencies ...but the JVM which Gradle (and the Android Gradle Plugin) runs on. The question doesn't loose a word about the plugin version, which you may be building with... the current version would be: 7.0.0.

Martin Zeitler
  • 1
  • 19
  • 155
  • 216
0

The issue got fixed after updating to AGP version 7.0.1

Update your build.gradle (project)

dependencies {

    classpath "com.android.tools.build:gradle:7.0.1"

}
Sonu Sourav
  • 2,926
  • 2
  • 12
  • 25
0

I got rid of this error after doing

Build Clean

Make Project

Manoj Perumarath
  • 9,337
  • 8
  • 56
  • 77
  • But the error come back again and again, cleaning everytime takes time. We need spome solid solution here? ANyone found it? – Vikas Pandey Nov 15 '22 at 02:40
0

use target sdk 32 then downgrade to 31 if you want

renard
  • 11
  • 2
0

I increased the min API Level to Android 7.0 and worked for me. And make sure Android dependencies are resolved.

shubomb
  • 672
  • 7
  • 20