如何在Android Studio中检查代码指标(代码行,死代码行,圈复杂度等)

时间:2018-11-30 19:29:44

标签: android-studio metrics

我在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(本机方法),位于   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(本机方法),位于   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个

1 个答案:

答案 0 :(得分:0)

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