【问题标题】:How to check metrics of code (Lines of Code, Lines of Dead Code, Cyclomatic Complexity, ...) in Android Studio如何在 Android Studio 中检查代码指标(代码行、死代码行、圈复杂度等)
【发布时间】:2018-11-30 19:29:43
【问题描述】:

我在 Android Studio 中计算代码指标时遇到了一些问题。我发现 Metrics Reloaded,但我的 Android Studio 无法使用它们(加载此插件时它总是向我显示错误)。

在 Google 搜索中,我没有找到任何不同的插件或类似的东西。还有什么或者有人知道哪里可能有错误吗?

错误:

名称为“com.sixrr.metrics.plugin.ProjectMetricsAction”的类不能 被加载[插件:MetricsReloaded] com.intellij.diagnostic.PluginException:具有名称的类 无法加载“com.sixrr.metrics.plugin.ProjectMetricsAction” [插件:MetricsReloaded] 在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.error(ActionManagerImpl.java:186) 在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:151) 在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getActionImpl(ActionManagerImpl.java:481) 在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.getAction(ActionManagerImpl.java:469) 在 com.intellij.openapi.actionSystem.DefaultActionGroup.unStub(DefaultActionGroup.java:347) 在 com.intellij.openapi.actionSystem.DefaultActionGroup.getChildren(DefaultActionGroup.java:305) 在 com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:188) 在 com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:153) 在 com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:228) 在 com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:153) 在 com.intellij.openapi.actionSystem.impl.Utils.expandActionGroup(Utils.java:228) 在 com.intellij.openapi.actionSystem.impl.Utils.fillMenu(Utils.java:365) 在 com.intellij.openapi.actionSystem.impl.ActionMenu.fillMenu(ActionMenu.java:315) 在 com.intellij.openapi.actionSystem.impl.ActionMenu.access$600(ActionMenu.java:41) 在 com.intellij.openapi.actionSystem.impl.ActionMenu$MenuListenerImpl.menuSelected(ActionMenu.java:271) 在 javax.swing.JMenu.fireMenuSelected(JMenu.java:1038) 在 javax.swing.JMenu$MenuChangeListener.stateChanged(JMenu.java:1118) 在 javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:349) 在 javax.swing.DefaultButtonModel.setSelected(DefaultButtonModel.java:232) 在 javax.swing.JMenu.setSelected(JMenu.java:305) 在 javax.swing.JMenu.menuSelectionChanged(JMenu.java:1187) 在 com.intellij.openapi.actionSystem.impl.ActionMenu.menuSelectionChanged(ActionMenu.java:235) 在 javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:125) 在 javax.swing.plaf.basic.BasicMenuUI$Handler.mouseEntered(BasicMenuUI.java:526) 在 java.awt.Component.processMouseEvent(Component.java:6557) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3325) 在 java.awt.Component.processEvent(Component.java:6313) 在 java.awt.Container.processEvent(Container.java:2237) 在 java.awt.Component.dispatchEventImpl(Component.java:4903) 在 java.awt.Container.dispatchEventImpl(Container.java:2295) 在 java.awt.Component.dispatchEvent(Component.java:4725) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889) 在 java.awt.LightweightDispatcher.retargetMouseEnterExit(Container.java:4677) 在 java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4655) 在 java.awt.LightweightDispatcher.processMouseEvent(Container.java:4506) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467) 在 java.awt.Container.dispatchEventImpl(Container.java:2281) 在 java.awt.Window.dispatchEventImpl(Window.java:2746) 在 java.awt.Component.dispatchEvent(Component.java:4725) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764) 在 java.awt.EventQueue.access$500(EventQueue.java:98) 在 java.awt.EventQueue$3.run(EventQueue.java:715) 在 java.awt.EventQueue$3.run(EventQueue.java:709) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) 在 java.awt.EventQueue$4.run(EventQueue.java:737) 在 java.awt.EventQueue$4.run(EventQueue.java:735) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:734) 在 com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822) 在 com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:759) 在 com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 引起:java.lang.NoClassDefFoundError: com/sixrr/metrics/MetricsResultsHolder 在 java.lang.Class.forName0(本机方法)在 java.lang.Class.forName(Class.java:348) 在 com.intellij.openapi.actionSystem.impl.ActionManagerImpl.convertStub(ActionManagerImpl.java:144) ... 58 更多原因:java.lang.ClassNotFoundException: com.sixrr.metrics.MetricsResultsHolder PluginClassLoader[MetricsReloaded, 1.8] com.intellij.ide.plugins.cl.PluginClassLoader@76fcea6b 在 com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:63) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 61 更多

【问题讨论】:

  • 除非您向我们展示实际、准确的错误信息,否则我们无法帮助您。
  • 我正在更新我的问题

标签: android-studio metrics


【解决方案1】:

您还可以尝试按照此答案中的说明安装 Jetbrains Statistics 插件: Count lines of code in all java classes in Android Studio

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2013-02-10
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多