kyson / androidgodeye Goto Github PK
View Code? Open in Web Editor NEWAn app performance monitor(APM) , like "Android Studio profiler", you can easily monitor the performance of your app real time in browser
License: Apache License 2.0
An app performance monitor(APM) , like "Android Studio profiler", you can easily monitor the performance of your app real time in browser
License: Apache License 2.0
GodEye.instance().installAll(getApplication(),new CrashFileProvider(context))
在application中oncreate中调用这行代码报错
GodEye.instance().observeModule(GodEye.ModuleName.THREAD, new Consumer<ThreadInfo>() {
@Override
public void accept(ThreadInfo threadInfo) throws Exception {
mConsumer.accept(GodEye.ModuleName.THREAD, threadInfo);
}
});
03-20 04:23:17.341 16128 16148 E AndroidRuntime: io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.util.ArrayList cannot be cast to cn.hikyson.methodcanary.lib.ThreadInfo
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:67)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at java.lang.Thread.run(Thread.java:761)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be cast to cn.hikyson.methodcanary.lib.ThreadInfo
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at com.douban.frodo.eye.Eye$18.accept(Eye.java:187)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
03-20 04:23:17.341 16128 16148 E AndroidRuntime: ... 9 more
io.reactivex.exceptions.OnErrorNotImplementedException: Attempt to invoke virtual method 'java.lang.String java.lang.ThreadGroup.getName()' on a null object reference
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onError(ObservableSubscribeOn.java:63)
at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:61)
at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:113)
at io.reactivex.internal.operators.observable.ObservableSampleTimed$SampleTimedObserver.emit(ObservableSampleTimed.java:116)
at io.reactivex.internal.operators.observable.ObservableSampleTimed$SampleTimedNoLast.run(ObservableSampleTimed.java:138)
at io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask.run(ScheduledDirectPeriodicTask.java:39)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:278)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:270)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.ThreadGroup.getName()' on a null object reference
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadlockDefaultThreadFilter.filter(DeadlockDefaultThreadFilter.java:11)
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadLock$2.apply(DeadLock.java:48)
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadLock$2.apply(DeadLock.java:43)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
... 10 more
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.ThreadGroup.getName()' on a null object reference
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadlockDefaultThreadFilter.filter(DeadlockDefaultThreadFilter.java:11)
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadLock$2.apply(DeadLock.java:48)
at cn.hikyson.godeye.core.internal.modules.thread.deadlock.DeadLock$2.apply(DeadLock.java:43)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
at io.reactivex.observers.SerializedObserver.onNext(SerializedObserver.java:113)
at io.reactivex.internal.operators.observable.ObservableSampleTimed$SampleTimedObserver.emit(ObservableSampleTimed.java:116)
at io.reactivex.internal.operators.observable.ObservableSampleTimed$SampleTimedNoLast.run(ObservableSampleTimed.java:138)
at io.reactivex.internal.schedulers.ScheduledDirectPeriodicTask.run(ScheduledDirectPeriodicTask.java:39)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:278)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:270)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
如题
看到腾讯Bugly分享的一篇文章关于如何检测死锁的方案,这么看来项目中检测死锁的方案就非常局限了,检测死锁这个对于工程量较大的项目而言还是很有必要的一项性能检测。
Add the required permissions to the readme as people might not have them for release but need them in the manifest for debug.
An example: java.lang.IllegalStateException: install leak need permission:android.permission.WRITE_EXTERNAL_STORAGE
你好
我使用的是android板子通过以太网连接,我看源码中您是通过wifi获取的ip地址。
所以我没有使用wifi则无法获取ip地址
Open AndroidGodEye dashboard [ http://0.0.0.0:5390/index.html ] in your browser , if can not open it , make sure device and pc are on the same network segment
能否增加下相关功能
java.lang.NullPointerException: Attempt to invoke virtual method 'io.reactivex.Observable cn.hikyson.godeye.core.internal.ProduceableSubject.subject()' on a null object reference
at cn.hikyson.godeye.monitor.driver.Watcher.observeAll(Watcher.java:69)
at cn.hikyson.godeye.monitor.GodEyeMonitor.work(GodEyeMonitor.java:82)
at cn.hikyson.godeye.monitor.GodEyeMonitor.work(GodEyeMonitor.java:43)
目前因为 Client 端使用 Http 轮询的方式,导致 Server 端被设计为所谓的「生产者 / 消费者」模式,这其实是一个设计错误,会导致很多问题:
建议可以改为使用 WebSocket 协议通讯。WebSocket Server 端可以用 Stetho 的实现,具体可以参考: https://github.com/nekocode/websocket-adb-forward
2 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5973)
3 ......
4 Caused by:
5 java.lang.IllegalStateException:can not call install leak
6 cn.hikyson.godeye.core.internal.modules.leakdetector.LeakDetector.install(LeakDetector.java:49)
7 cn.hikyson.godeye.core.internal.modules.leakdetector.LeakDetector.install(LeakDetector.java:24)
8 cn.hikyson.godeye.core.GodEye.install(GodEye.java:47)
9 com.saic.cmp.business.CMPApplication.onCreate(CMPApplication.java:150)
10 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1032)
11 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5970)
12 android.app.ActivityThread.-wrap3(ActivityThread.java)
13 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1710)
14 android.os.Handler.dispatchMessage(Handler.java:102)
15 android.os.Looper.loop(Looper.java:154)
16 android.app.ActivityThread.main(ActivityThread.java:6776)
17 java.lang.reflect.Method.invoke(Native Method)
18 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
19 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
App启动几分钟后 crash, 启动后没进行任何交互
java.lang.ArithmeticException: divide by zero
at cn.hikyson.godeye.core.internal.modules.fps.FpsEngine$3$1$1.doFrame(FpsEngine.java:78)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:883)
at android.view.Choreographer.doCallbacks(Choreographer.java:697)
at android.view.Choreographer.doFrame(Choreographer.java:630)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:871)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6338)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Execution failed for task ':app:transformClassesWithMethodCanaryTransformForDebug'.
This feature requires ASM6
Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
android studio 安装了插件,但是没有显示对应的 icon
如题
照顾一下看不懂中文的小伙伴们...当然双语更好...
So, I have my application class extending Application like this:
class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
StartupTracer.get().onApplicationCreate();
GodEye.instance().installAll(this, new CrashFileProvider(this));
GodEyeMonitor.work(this);
}
}
And looking in the web app shows nothing:
Maybe I should initialize things in other places? How should it be?
Also, seeing the stacktrace it shows. Without proguard it seems the issue does not appear. So I guess its heavily tied to it
Caused by: java.lang.IllegalStateException: can not call install leak
at cn.hikyson.godeye.core.internal.modules.leakdetector.c.a(SourceFile:44)
at cn.hikyson.godeye.core.internal.modules.leakdetector.c.a(SourceFile:37)
at cn.hikyson.godeye.core.a.a(SourceFile:68)
at cn.hikyson.godeye.core.a.a(SourceFile:60)
at com.this.is.my.package.MainApplication.onCreate(SourceFile:XXX)
多个项目同时接入,可以在浏览器面板上作区分吗
ERROR: Failed to resolve: cn.hikyson.godeye:godeye-monitor:2.7.3
Show in Project Structure dialog
ERROR: Failed to resolve: cn.hikyson.godeye:godeye-core:2.7.3
Show in Project Structure dialog
ERROR: Failed to resolve: cn.hikyson.godeye:godeye-toolbox:2.7.3
Show in Project Structure dialog
ERROR: Failed to resolve: cn.hikyson.godeye:godeye-monitor-no-op:2.7.3
Show in Project Structure dialog
架构图用什么软件画的,求推荐
The image below Base info
and More
is broken and the image below Framework
is too blurry to figure out.
FAILURE: Build failed with an exception.
Invalid opcode 169
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:transformClassesWithMethodCanaryTransformForDebug'.
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:92)
at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:110)
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: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.lang.IllegalArgumentException: Invalid opcode 169
at org.objectweb.asm.commons.AdviceAdapter.visitVarInsn(AdviceAdapter.java:355)
at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2174)
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1283)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:688)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:400)
at org.objectweb.asm.ClassReader$accept.call(Unknown Source)
at cn.hikyson.methodcanary.plugin.TransformHandler.handleJarInputs(TransformHandler.groovy:118)
at cn.hikyson.methodcanary.plugin.TransformHandler$_handle_closure1$_closure4.doCall(TransformHandler.groovy:59)
at cn.hikyson.methodcanary.plugin.TransformHandler$_handle_closure1.doCall(TransformHandler.groovy:58)
at cn.hikyson.methodcanary.plugin.TransformHandler.handle(TransformHandler.groovy:54)
at cn.hikyson.methodcanary.plugin.TransformHandler$handle.call(Unknown Source)
at cn.hikyson.methodcanary.plugin.MethodCanaryTransform.transform(MethodCanaryTransform.groovy:42)
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:337)
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:326)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:311)
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:136)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:60)
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)
... 37 more
Get more help at https://help.gradle.org
还有个建议,引入该库的同时,会将rxjava2也引进来,这点不太友好
5.1的系统
Process: cn.hikyson.godeyedemo, PID: 27087
io.reactivex.exceptions.OnErrorNotImplementedException: totalTime must greater than 0
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
at io.reactivex.observers.SerializedObserver.onError(SerializedObserver.java:155)
at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onError(ObservableConcatMap.java:254)
at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:61)
at io.reactivex.internal.operators.observable.ObservableTimer$TimerObserver.run(ObservableTimer.java:67)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: cn.hikyson.godeye.core.internal.exception.GodEyeInvalidDataException: totalTime must greater than 0
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:61)
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:55)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
at io.reactivex.internal.operators.observable.ObservableTimer$TimerObserver.run(ObservableTimer.java:67)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Now the support is still used in the project, there is currently no way to upgrade androidx。Ask support, which version is available
打成release包的时候,依赖添加为cn.hikyson.godeye:godeye-monitor:1.7.4,包运行后能打开监控界面,却无法获取监控数据?
打成debug包才可以读取到数据,请问是release包有什么限制吗?
Found no content in console under kotlin version
Suggest: block detail add copy function
native 层crash可以输出吗
主线程注册,会响应启动速度,支持在子线程注册吗?
GodEye.instance().installAll(getApplication())
code文档里面并没有需要传入provider这个类
中文文档链接打不开啊;
Hai.. thanks for who make this an awesome tools to monitor resource usage in Android, but i wonder how to see an English translation in this monitoring tools, thanks in advance.
初始化时, 这行代码 .install(new LeakConfig(this,new RxPermissionRequest()))
导致crash, 必现.
com.tbruyelle.rxpermissions2.RxPermissionsFragment cannot be cast to cn.hikyson.android.godeye.toolbox.rxpermission.RxPermissionsFragment
我项目中使用了RxPermissions;
after opening the application when I click on Block option the Application should not crash
The Application crashes when I click on Block option
Download the application
open the Application
click on BLOCK option
Note the Error
Browser/App version: 6.0
Operating system: 6.0
E/AndroidRuntime(19687): FATAL EXCEPTION: main
E/AndroidRuntime(19687): Process: cn.hikyson.godeyedemo, PID: 19687
E/AndroidRuntime(19687): java.lang.IllegalStateException: Could not execute method of the activity
E/AndroidRuntime(19687): at android.view.View$1.onClick(View.java:4135)
E/AndroidRuntime(19687): at android.view.View.performClick(View.java:5076)
E/AndroidRuntime(19687): at android.view.View$PerformClick.run(View.java:20279)
E/AndroidRuntime(19687): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(19687): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(19687): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(19687): at android.app.ActivityThread.main(ActivityThread.java:5910)
E/AndroidRuntime(19687): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(19687): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(19687): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
E/AndroidRuntime(19687): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
E/AndroidRuntime(19687): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(19687): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(19687): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(19687): at android.view.View$1.onClick(View.java:4130)
E/AndroidRuntime(19687): ... 10 more
E/AndroidRuntime(19687): Caused by: java.lang.NumberFormatException: Invalid long: ""
E/AndroidRuntime(19687): at java.lang.Long.invalidLong(Long.java:124)
E/AndroidRuntime(19687): at java.lang.Long.parseLong(Long.java:345)
E/AndroidRuntime(19687): at java.lang.Long.parseLong(Long.java:321)
E/AndroidRuntime(19687): at cn.hikyson.godeyedemo.MainActivity.block(MainActivity.java:92)
FATAL EXCEPTION: RxComputationThreadPool-8
Process: cn.hikyson.android.godeye.sample, PID: 14665
io.reactivex.exceptions.OnErrorNotImplementedException: not valid ratio
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
at io.reactivex.observers.SerializedObserver.onError(SerializedObserver.java:155)
at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onError(ObservableConcatMap.java:254)
at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:61)
at io.reactivex.internal.operators.observable.ObservableTimer$TimerObserver.run(ObservableTimer.java:67)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: cn.hikyson.godeye.core.internal.exception.GodEyeInvalidDataException: not valid ratio
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:70)
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:55)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:59)
at io.reactivex.internal.operators.observable.ObservableTimer$TimerObserver.run(ObservableTimer.java:67)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
卡顿能被捕捉到,但是详情打不开
Showing stacktrace, it appears randomly after using the app for a bit
E/AndroidRuntime: FATAL EXCEPTION: RxComputationThreadPool-8
Process: com.myapp, PID: 29724
io.reactivex.exceptions.OnErrorNotImplementedException: totalTime must greater than 0
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)
at io.reactivex.observers.SerializedObserver.onError(SerializedObserver.java:155)
at io.reactivex.internal.operators.observable.ObservableConcatMap$SourceObserver$InnerObserver.onError(ObservableConcatMap.java:254)
at io.reactivex.internal.observers.BasicFuseableObserver.onError(BasicFuseableObserver.java:100)
at io.reactivex.internal.observers.BasicFuseableObserver.fail(BasicFuseableObserver.java:110)
at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:61)
at io.reactivex.internal.operators.observable.ObservableTimer$TimerObserver.run(ObservableTimer.java:67)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:38)
at io.reactivex.internal.schedulers.ScheduledDirectTask.call(ScheduledDirectTask.java:26)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: cn.hikyson.godeye.core.internal.exception.GodEyeInvalidDataException: totalTime must greater than 0
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:61)
at cn.hikyson.godeye.core.internal.modules.cpu.CpuEngine$3.apply(CpuEngine.java:55)
引入工程后,报godeye相关的class不能识别,不知道哪里姿势不对。这些install的class都是红色
GodEye.instance().install(Cpu.class, new CpuContextImpl())
.install(Battery.class, new BatteryContextImpl(this))
.install(Fps.class, new FpsContextImpl(this))
.install(Heap.class, Long.valueOf(2000))
.install(Pss.class, new PssContextImpl(this))
.install(Ram.class, new RamContextImpl(this))
.install(Sm.class, new SmContextImpl(this, 1000, 300, 800))
.install(Traffic.class, new TrafficContextImpl())
.install(Crash.class, new CrashFileProvider(this))
.install(ThreadDump.class, new ThreadContextImpl())
.install(DeadLock.class, new DeadLockContextImpl(GodEye.instance().getModule(ThreadDump.class).subject(), new DeadlockDefaultThreadFilter()))
.install(Pageload.class, new PageloadContextImpl(this))
.install(LeakDetector.class, new LeakContextImpl2(this, new PermissionRequest() {
@OverRide
public Observable dispatchRequest(Activity activity, String... permissions) {
return new RxPermissions(activity).request(permissions);
}
}));
哈喽,麻烦问下,关于文档中说的在''提供了api供开发者在release阶段进行数据上报';上报部分有说明么?
app已经可以启动起来了,但是点击控件就崩溃,GodEyeMonitor.work(this);放到了application onCreate里,没有放到activity里,另外,浏览器查看性能数据,cpu无输出,heap、trafic、ram、pss都有输出,所有的监控项都install了,求指导,AndroidGodeye 1.7.4
02-11 16:57:54.037 19047-19047/com.testerclub.demo.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.testerclub.demo.test, PID: 19047
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testerclub.demo.test/com.testerclub.core.base.PTWebViewActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2394)
at android.app.ActivityThread.access$800(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5276)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:302)
at android.app.Activity.requestWindowFeature(Activity.java:3656)
at com.testerclub.TC.h5.activity.TCWebViewActivity.initView(TCWebViewActivity.java:46)
at com.testerclub.TC.h5.activity.TCWebViewActivity.onCreate(TCWebViewActivity.java:41)
at com.testerclub.core.base.BaseOfflineHybridActivity.onCreate(BaseOfflineHybridActivity.java:84)
at com.testerclub.core.base.PTWebViewActivity.onCreate(PTWebViewActivity.java:25)
at android.app.Activity.performCreate(Activity.java:6041)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1109)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2285)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2394)
at android.app.ActivityThread.access$800(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5276)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)
android O 已把权限封死
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.