zhengcx / methodtraceman Goto Github PK
View Code? Open in Web Editor NEW用于快速找到高耗时方法,定位解决Android App卡顿问题。通过gradle plugin+ASM实现可配置范围的方法插桩来统计所有方法的耗时,并提供友好的界面展示,支持耗时筛选、线程筛选、方法名筛选等。(A Tool for Discovering High Time-consuming Methods for Android App)
用于快速找到高耗时方法,定位解决Android App卡顿问题。通过gradle plugin+ASM实现可配置范围的方法插桩来统计所有方法的耗时,并提供友好的界面展示,支持耗时筛选、线程筛选、方法名筛选等。(A Tool for Discovering High Time-consuming Methods for Android App)
下载项目测试,浏览器不显示数据是什么问题,怎么解决
`Task :MG:transformClassesWithTraceManTransformForMG_FactoryDebug
[MethodTraceMan]: transform()
parseTraceConfigFile start!!!!!!!!!!!!
tracepackage:com/sample/mg
beatclass:cn/cxzheng/tracemanui/TraceMan
Task :MG:transformClassesWithTraceManTransformForMG_FactoryDebug FAILED
FAILURE: Build failed with an exception.
java.lang.RuntimeException (no error message)
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 ':MG:transformClassesWithTraceManTransformForMG_FactoryDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148)
at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:94)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:95)
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:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
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:49)
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.lang.RuntimeException
at org.objectweb.asm.ClassVisitor.visitModule(ClassVisitor.java:148)
at org.objectweb.asm.ClassReader.readModule(ClassReader.java:731)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:632)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
at org.objectweb.asm.ClassReader$accept.call(Unknown Source)
at cn.cxzheng.tracemanplugin.TraceManTransform.traceJarFiles(TraceManTransform.groovy:161)
at cn.cxzheng.tracemanplugin.TraceManTransform$traceJarFiles.callStatic(Unknown Source)
at cn.cxzheng.tracemanplugin.TraceManTransform$_transform_closure1$_closure4.doCall(TraceManTransform.groovy:71)
at cn.cxzheng.tracemanplugin.TraceManTransform$_transform_closure1.doCall(TraceManTransform.groovy:70)
at cn.cxzheng.tracemanplugin.TraceManTransform.transform(TraceManTransform.groovy:65)
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:106)
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.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$5.run(ExecuteActionsTaskExecuter.java:404)
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:393)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:376)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:213)
at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$0(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:32)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:58)
at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:35)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:33)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:39)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:35)
at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:45)
at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:31)
at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:201)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:70)
at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:45)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:43)
at org.gradle.internal.execution.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:32)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:77)
at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:90)
at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:48)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:120)
... 35 more`
编译失败,能看看什么原因吗
Task :internationalApp:transformClassesWithTraceManTransformForDebug FAILED
[MethodTraceMan]: transform()
parseTraceConfigFile start!!!!!!!!!!!!
tracepackage:com/android/thememanager
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':internationalApp:transformClassesWithTraceManTransformForDebug'.
java.lang.NullPointerException (no error message)
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 25s
39 actionable tasks: 28 executed, 11 up-to-date
Execution failed for task ':app:transformClassesWithTraceManTransformForDebug'.
请问下,集成之后这样报错是什么原因呢?其他的配置会影响吗?
如题, 插件不兼容.
incompatible (support only in IntellJ IDEA)
请问有其他办法查看统计信息吗
配置文件信息:
#配置需插桩的包,如果为空,则默认所有文件都进行插桩(config the package need to trace,If they are empty, all files are traced by default.)
-tracepackage com/dong/newnovel
#在需插桩的包下设置无需插桩的包(Setting up traceless packages under packages that require trace)
#-keeppackage cn/cxzheng/asmtraceman/test
#在需插桩的包下设置无需插桩的类(Setting up traceless classes under packages that require trace)
#-keepclass cn/cxzheng/asmtraceman/MainActivity
#插桩代码所在类,这里固定配置为:cn/cxzheng/tracemanui/TraceMan(Fixed configuration here: cn/cxzheng/tracemanui/TraceMan)
-beatclass cn/cxzheng/tracemanui/TraceMan#
java.lang.ExceptionInInitializerError
at cn.cxzheng.tracemanui.TraceMan.isOpenTraceMethod(TraceMan.java:123)
at cn.cxzheng.tracemanui.TraceMan.start(TraceMan.java:27)
at org.aspectj.runtime.reflect.Factory.(Unknown Source:3)
at com.meiyou.framework.base.FrameworkApplication.ajc$preClinit(FrameworkApplication.java:1)
at com.meiyou.framework.base.FrameworkApplication.(FrameworkApplication.java:1)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
at android.app.Instrumentation.newApplication(Instrumentation.java:1158)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1236)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.util.Hashtable.get(java.lang.Object)' on a null object reference
at org.aspectj.runtime.reflect.Factory.makeClass(Factory.java:58)
at org.aspectj.runtime.reflect.Factory.makeMethodSig(Factory.java:189)
at cn.cxzheng.tracemanui.MethodTraceServerManager.ajc$preClinit(MethodTraceServerManager.kt:1)
at cn.cxzheng.tracemanui.MethodTraceServerManager.(Unknown Source:5)
at cn.cxzheng.tracemanui.TraceMan.isOpenTraceMethod(TraceMan.java:123)
at cn.cxzheng.tracemanui.TraceMan.start(TraceMan.java:27)
at org.aspectj.runtime.reflect.Factory.(Unknown Source:3)
at com.meiyou.framework.base.FrameworkApplication.ajc$preClinit(FrameworkApplication.java:1)
at com.meiyou.framework.base.FrameworkApplication.(FrameworkApplication.java:1)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
at android.app.Instrumentation.newApplication(Instrumentation.java:1158)
at android.app.LoadedApk.makeApplication(LoadedApk.java:1236)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6683)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
MethodTraceMan plugin install fails on AndroidStudio 4.1
Errors: "Incompatible (supported only in IntelliJ IDEA)"
在Ubuntu 16.04 系统上无反应,Android studio 3.3.1 版本,点击黄色小灯泡没有打开浏览器页面,点击无反应。
Task :android_lab:transformClassesWithTraceManTransformForEnvTest
[MethodTraceMan]: transform()
beatclass:cn/cxzheng/tracemanui/TraceMan
我有一个Activity,并没有重写onStart方法。工具检测到onStart方法耗时了800多毫秒,这貌似不太正常,应该不会向未重写的父类方法中插桩吧,因为在检测结果中,我并没有找到onPause之类的其他未重写的其他方法。
Empty transform function, can't put the class into the apk file.
support apply plugin: 'com.android.library'
在android studio 3.6 上不显示插件的💡按钮,程序可以配置成功并运行成功
无法输出统计结果,显示No data
如题
我的项目debug模式下也开启了混淆, 然后发现点击"结束方法耗时"按钮后网页里没有数据, 加上这两条规则之后就可以了.
-keep class cn.cxzheng.tracemanui.** {*;}
-keep class com.ctrip.ibu.** {*;}
建议支持一下高版本的 gradle
如题,因为我发现很多默认方法在实际过程中根本没有override,但是也进行了插桩
2019-12-05 15:47:48.513 26120-26130 E/System: java.lang.StackOverflowError: stack size 1037KB
at java.lang.ThreadLocal$ThreadLocalMap.getEntry(ThreadLocal.java:378)
at java.lang.ThreadLocal$ThreadLocalMap.-wrap0(ThreadLocal.java)
at java.lang.ThreadLocal.get(ThreadLocal.java:146)
at android.os.Looper.myLooper(Looper.java:185)
at cn.cxzheng.tracemanui.TraceMan.isInMainThread(TraceMan.java:113)
at cn.cxzheng.tracemanui.TraceMan.start(TraceMan.java:30)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUtil$Companion.detail(LogUtil.kt:18)
at cn.cxzheng.tracemanui.utils.LogUtil.detail(LogUtil.kt)
at cn.cxzheng.tracemanui.TraceMan.end(TraceMan.java:37)
at cn.cxzheng.tracemanui.MethodTraceServerManager.getLogLevel(MethodTraceServerManager.kt:41)
at cn.cxzheng.tracemanui.utils.LogUti
执行这个任务就失败
我项目导了一个converter-gson-2.3.0.jar包,按你的说明配置好后一build项目后就报错了,你项目中用一了google的gson包吗?怎么解决?出错如下:Duplicate class com.google.gson.DefaultDateTypeAdapter found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.ExclusionStrategy found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldAttributes found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy$1 found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy$2 found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy$3 found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy$4 found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingPolicy$5 found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.FieldNamingStrategy found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and gson-2.8.5.jar (gson-2.8.5.jar)
Duplicate class com.google.gson.Gson found in modules gson-2.8.0.jar (com.google.code.gson:gson:2.8.0) and
请问下,为什么我参照你文章中说的那样,配置,编译完成后,运行后看不到log,并且打开浏览器,浏览器加载错误?
是哪个环节有问题吗?
#插桩代码所在类,这里固定配置为:cn/cxzheng/tracemanui/TraceMan(Fixed configuration here: cn/cxzheng/tracemanui/TraceMan)
-beatclass cn/cxzheng/tracemanui/TraceMan
这个直接copy就可以了吗,不用修改吗?
环境:
Android Studio 3.5.3
MethodTraceMan:1.0.7
tracemanplugin:1.0.3
其中配置项logTraceInfo = true
现象:
Task :app:transformClassesWithTraceManTransformForDebug
[MethodTraceMan]: transform()
安装App, 进行方法计时, 结束计时, 结果显示有0条记录, 推断为插桩失败
在traceconfig中, 将-tracepackage注释掉(首行加#), 编译时看build Ouput显示大量类的插桩信息
安装App, 进行方法计时, App崩溃, 崩溃信息为java.lang.StackOverflowError: stack size 1041KB, 推断为计时方法本身也被插桩了, 导致循环调用栈溢出
在traceconfig中, 添加 -keeppackage cn/cxzheng,控制无需插桩的包, 编译运行
6, 安装App, 进行方法计时, App崩溃, 同样是栈溢出, 推断控制无需插桩的包一行未生效
问题原因:
traceconfig文件的判断可能有问题,对问题现象和环境有任何疑问,请向我留言,谢谢。
按照文档配置完了之后显示gradle project sync failed 是为什么呢
android studio 3.5
Task :app:clean
Task :app:preBuild UP-TO-DATE
Task :app:preDebugBuild UP-TO-DATE
Task :app:compileDebugAidl NO-SOURCE
Task :app:compileDebugRenderscript NO-SOURCE
Task :app:checkDebugManifest
Task :app:generateDebugBuildConfig
Task :app:mainApkListPersistenceDebug
Task :app:generateDebugResValues
Task :app:generateDebugResources
Task :app:javaPreCompileDebug
Task :app:createDebugCompatibleScreenManifests
Task :app:processDebugManifest
/home/ts/Public/workspaces/com.hmdglobal.app.camera/HMDCamera/app/src/main/AndroidManifest.xml:41:5-66 Warning:
Element uses-permission#android.permission.VIBRATE at AndroidManifest.xml:41:5-66 duplicated with element declared at AndroidManifest.xml:30:5-66
Task :app:mergeDebugShaders
Task :app:compileDebugShaders
Task :app:generateDebugAssets
Task :app:mergeDebugAssets
Task :app:processDebugJavaRes NO-SOURCE
Task :app:checkDebugDuplicateClasses
Task :app:validateSigningDebug
Task :app:signingConfigWriterDebug
Task :app:mergeDebugJniLibFolders
Task :app:mergeDebugResources
warn: removing resource com.hmdglobal.app.camera:string/flash_with_superzoom_toast without required default value.
warn: removing resource com.hmdglobal.app.camera:string/pano_too_fast_prompt without required default value.
warn: removing resource com.hmdglobal.app.camera:string/panoramagp3_ANTI_BANDING without required default value.
warn: removing resource com.hmdglobal.app.camera:string/pref_category_advanced without required default value.
warn: removing resource com.hmdglobal.app.camera:string/setting_stereo_name without required default value.
warn: removing resource com.hmdglobal.app.camera:string/startup_dialog_botton_next without required default value.
warn: removing resource com.hmdglobal.app.camera:string/super_zoom_on_toast without required default value.
warn: removing resource com.hmdglobal.app.camera:string/tip_for_move_down without required default value.
warn: removing resource com.hmdglobal.app.camera:string/tip_for_move_left without required default value.
warn: removing resource com.hmdglobal.app.camera:string/tip_for_move_right without required default value.
warn: removing resource com.hmdglobal.app.camera:string/tip_for_move_slow without required default value.
warn: removing resource com.hmdglobal.app.camera:string/tip_for_move_up without required default value.
Task :app:processDebugResources
Task :app:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Task :app:compileDebugSources
Task :app:transformClassesWithTraceManTransformForDebug FAILED
[MethodTraceMan]: transform()
tracepackage:com/hmdglobal/app/camera
MethodTraceMan-trace-class: com/hmdglobal/app/camera/MicroVideoModule$3
Task :app:mergeDebugNativeLibs
Task :app:mergeDebugJavaResource
Android studio 3.6beta01
Task :app:transformClassesWithTraceManTransformForDebug
[MethodTraceMan]: transform()
parseTraceConfigFile start!!!!!!!!!!!!
tracepackage:我的项目包名信息手动删掉了格式为com/xxxx/xxxx
beatclass:cn/cxzheng/tracemanui/TraceMan
Task :app:transformClassesWithTraceManTransformForDebug FAILED
Task :app:mergeDebugNativeLibs
Task :app:mergeDebugJavaResource
FAILURE: Build failed with an exception.
java.lang.RuntimeException (no error message)
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
不知道这是什么原因,在新建Hello Word项目中,同样的操作配置没有问题可以运行,可以确定我的配置是没有问题的,但是在我的项目中就是运行不起来,无解
localhost 拒绝了我们的连接请求。
请在 Google 中搜索“localhost 5392 index”
ERR_CONNECTION_REFUSED
请求帮助~
19-11-15 16:53:49.436 13323-13323/pro.huobi I/MethodTraceMan: MethodTraceMan Server is running
2019-11-15 16:53:49.439 13323-13323/pro.huobi I/MethodTraceMan: http://10.154.108.103:5392/index.html
插装应该没错 耗时日志也有 。为啥上传0条
频繁打印
I/zygote: WaitForGcToComplete blocked Alloc on HeapTrim for 21.864ms
I/zygote: Starting a blocking GC Alloc
I/zygote: Starting a blocking GC Alloc
I/zygote: Waiting for a blocking GC Alloc
I/zygote: Waiting for a blocking GC Alloc
I/zygote: Background concurrent copying GC freed 865(288MB) AllocSpace objects, 0(0B) LOS objects, 33% free, 95MB/143MB, paused 293us total 121.579ms
I/zygote: WaitForGcToComplete blocked Alloc on HeapTrim for 76.357ms
I/zygote: Starting a blocking GC Alloc
I/zygote: WaitForGcToComplete blocked Alloc on HeapTrim for 29.824ms
I/zygote: Starting a blocking GC Alloc
频繁GC对检测的结果会造成影响,并且在没有进行检测的时候,希望暂停内部的操作
AndroidStudio 3.5.2
java.lang.NullPointerException
at org.objectweb.asm.Item.set(Item.java:233)
at org.objectweb.asm.ClassWriter.newMethodItem(ClassWriter.java:1498)
at org.objectweb.asm.MethodWriter.visitMethodInsn(MethodWriter.java:899)
at cn.cxzheng.tracemanplugin.TraceMethodVisitor.onMethodEnter(TraceMethodVisitor.kt:36)
at org.objectweb.asm.commons.AdviceAdapter.visitCode(AdviceAdapter.java:112)
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1125)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
at org.objectweb.asm.ClassReader$accept.call(Unknown Source)
at cn.cxzheng.tracemanplugin.TraceManTransform$_traceSrcFiles_closure2.doCall(TraceManTransform
2019/11/28 16:33
同步最新代码之后,没有出现这个问题了 。
#25 但是目前存在这个问题
我项目内有gson,编译时冲突了。
debugImplementation('com.github.zhengcx:MethodTraceMan:1.0.4') {
exclude group: 'com.google.code.gson'
}
releaseImplementation 'com.github.zhengcx:MethodTraceMan:1.0.5-noop'
排除掉gson,编译报空指针
org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:386)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:247)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:159)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:55)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':transformClassesWithTraceManTransformForDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
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.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
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)
... 6 more
Caused by: java.lang.NullPointerException
at org.objectweb.asm.Item.set(Item.java:233)
at org.objectweb.asm.ClassWriter.newMethodItem(ClassWriter.java:1498)
at org.objectweb.asm.MethodWriter.visitMethodInsn(MethodWriter.java:899)
at cn.cxzheng.tracemanplugin.TraceMethodVisitor.onMethodEnter(TraceMethodVisitor.kt:35)
at org.objectweb.asm.commons.AdviceAdapter.visitCode(AdviceAdapter.java:112)
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1125)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
at org.objectweb.asm.ClassReader$accept.call(Unknown Source)
at cn.cxzheng.tracemanplugin.TraceManTransform$_traceSrcFiles_closure2.doCall(TraceManTransform.groovy:114)
at sun.reflect.GeneratedMethodAccessor782.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1283)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1281)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1281)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1281)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1281)
at org.codehaus.groovy.runtime.ResourceGroovyMethods.eachFileRecurse(ResourceGroovyMethods.java:1518)
at org.codehaus.groovy.runtime.dgm$991.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:246)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
at cn.cxzheng.tracemanplugin.TraceManTransform.traceSrcFiles(TraceManTransform.groovy:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:184)
at cn.cxzheng.tracemanplugin.TraceManTransform$_transform_closure1$_closure3.doCall(TraceManTransform.groovy:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2296)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2281)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2322)
at org.codehaus.groovy.runtime.dgm$186.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:246)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
at cn.cxzheng.tracemanplugin.TraceManTransform$_transform_closure1.doCall(TraceManTransform.groovy:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:427)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2296)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2281)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2322)
at org.codehaus.groovy.runtime.dgm$186.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:246)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
at cn.cxzheng.tracemanplugin.TraceManTransform.transform(TraceManTransform.groovy:66)
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 sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
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$2.run(ExecuteActionsTaskExecuter.java:284)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
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:33)
at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
at java.util.Optional.orElseGet(Optional.java:267)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
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:96)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
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:91)
... 35 more
跪求支持~
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':app:transformClassesWithTraceManTransformForStagingDebug'.
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > java.lang.NullPointerException (no error message)
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. Run with --scan to get full insights.
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger]
14:28:01.816 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 43s
* What went wrong:
Execution failed for task ':app:checkStagingDebugDuplicateClasses'.
> Could not resolve all files for configuration ':app:stagingDebugRuntimeClasspath'.
> Failed to transform file 'classes_temp.jar' to match attributes {artifactType=android-classes, org.gradle.usage=java-runtime-jars}
> Execution failed for JetifyTransform:project_path\platform_base\libs\classes_temp.jar.
> Failed to transform 'project_path\platform_base\libs\classes_temp.jar' using Jetifier. Reason: Unexpected end of ZLIB input stream. (Run with --stacktrace for more details.)
config 里面只是打开了-tracepackage
设置为包名。
我的工程结构是有个App的module,引用了platform_base, 依赖在App和base中都有,初始化Java代码是在Base中,配置插件实在App中。
大佬,很多方法没统计到,可能会是什么原因呢
如题 Android Studio 3.6.1 默认浏览器Google Chrome 81.0.4044.113 一点反应也没有啊 求大佬修复
大佬,as的插件有考虑开源不
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.