Crashlytics Android Studio 插件无法初始化

Posted

技术标签:

【中文标题】Crashlytics Android Studio 插件无法初始化【英文标题】:Crashlytics Android Studio plugin fails to initialize 【发布时间】:2014-04-23 05:32:09 【问题描述】:

我正在运行 android Studio 0.5.1。我已经下载了 Crashlytics Android Studio 插件并从光盘安装了它。当我重新启动 Android Studio 时,出现以下异常

Plugin 'com.crashlytics.tools.androidstudio' failed to initialize and will be disabled.  Please restart Android Studio.

java.lang.NoClassDefFoundError: org/osgi/framework/BundleActivator
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:471)
    at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:189)
    at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:185)
    at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:161)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.java:124)
    at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.java:77)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:66)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at com.crashlytics.tools.intellij.OSGiPluginServices.createOSGi(OSGiPluginServices.java:62)
    at com.crashlytics.tools.intellij.CrashlyticsPlugin.initComponent(CrashlyticsPlugin.java:89)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter$1.getComponentInstance(ComponentManagerImpl.java:548)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:590)
    at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:225)
    at com.intellij.util.pico.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:212)
    at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:199)
    at org.picocontainer.alternatives.AbstractDelegatingMutablePicoContainer.getComponentInstance(AbstractDelegatingMutablePicoContainer.java:75)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponent(ComponentManagerImpl.java:121)
    at com.intellij.openapi.application.impl.ApplicationImpl.createComponent(ApplicationImpl.java:371)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:112)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:89)
    at com.intellij.openapi.components.impl.stores.ApplicationStoreImpl.load(ApplicationStoreImpl.java:87)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:508)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:150)
    at com.intellij.idea.MainImpl$1$1$1.run(MainImpl.java:46)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:697)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:524)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.osgi.framework.BundleActivator PluginClassLoader[com.crashlytics.tools.androidstudio, 1.5.0]
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:68)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 44 more

【问题讨论】:

【参考方案1】:

来自 Crashlytics 的 Hemal!你能继续尝试安装 plugin.zip 文件而不是 jar 并告诉我是否可行吗?

【讨论】:

似乎已经做到了。我一开始是用 Safari 下载的,文件会自动解压缩。你的笔记提示我尝试使用 Chrome 下载,它保留了 zip。谢谢! 嘿 Hemal Shah,我也遇到了同样的问题,但无法使用 zip 文件。 IntelliJ13 + Crashlytics,与 joates 相同的堆栈跟踪。 谢谢,遇到了同样的问题,但 ZIP 文件而不是 JAR 的插件安装解决了这个问题。 我尝试了 Android Studio 和 Intellij zip 插件。我正在使用 Android Studio 0.5.8,但出现此错误:pastebin.com/1SaYD9Gy Hemal。你太棒了。【参考方案2】:

我遇到了这个错误“NoClassDefFoundError: javax/swing/SwingUtilities”

我必须下载并使用 jdk1.7.0_65 而不是 jdk1.8.0_05 并更改我的环境变量中的路径。

希望这对某人有所帮助!

【讨论】:

【参考方案3】:

天哪,我以为这行不通,但确实如此!它现在在工具栏中显示图标,但我在 crashlytics 上分配了热键,它会在(!)IDEA CE 13.1.4 屏幕下方弹出。

【讨论】:

【参考方案4】:

选择设置对话框右侧的“插件”。点击“从磁盘安装插件...”并选择下载的 zip文件。 不要解压缩文件。选择 下载 zip 文件。

【讨论】:

“无法从文件 CrashlyticsPlugin.zip 加载插件描述符”错误【参考方案5】:

为你们使用 safari 下载插件。使用其他可以自动解压容器的浏览器。

Android Studio 要求您安装压缩文件,而不是单独的 .jar:s

编辑: 另一种选择是转到 Safari -> 首选项并取消选中自动打开选项。 谢谢@m vai

【讨论】:

不需要它,只需进入 Safari -> 偏好设置并取消勾选自动打开选项。【参考方案6】:

使用Fabric Tool。您无需编写任何代码。查看以下步骤,在您的应用程序中安装Crashlytics

    进入这个Fabric link。然后登录 注册并登录您的帐户。

    在 Android Studio 中,点击 File -> settings->plugin-> 在顶部搜索栏中,搜索 Fabric for Android 然后点击 browse,你会看到 fabric android studio 文件。

    然后下载一个Fabric Android Studio Plugin.Zip文件。最后,重启Android Studio

    然后您可以在 eclipse 工具中看到 Fabric 图标。检查 如下截图:

    登录结构 -> 进入组织 -> 点击安装 crashlytics 工具。它将添加代码 自动。你不需要写一行代码。它会 在manifest文件和build.gradle中添加代码。

    成功安装后,运行您的应用程序。如果您的 应用程序崩溃,它将在您的fabric dashboard 中得到通知。

    输出:

    下面我在仪表板中发布了崩溃报告:

更多参考:Crashlytics

【讨论】:

它在 Lollipop 中运行良好,但是当在 kitkat 中运行应用程序时,应用程序无法运行并发现错误是...... java.lang.NoClassDefFoundError: com.crashlytics.android.answers.Answers 对我来说,它也在 kitkat 中工作 @Destro 检查是否有任何其他错误 是的 @Naruto Fabric Tool 是 android 应用程序 (Crashlytics) 的最佳工具,只需投票即可。

以上是关于Crashlytics Android Studio 插件无法初始化的主要内容,如果未能解决你的问题,请参考以下文章

无法获取提供程序 com.crashlytics.android.CrashlyticsInitProvider

Crashlytics Answers 引发 Android 即时应用程序错误

Crashlytics:使用构建服务器发布并上传 Android 应用程序的分发

Crashlytics Android 异常报告统计管理

无法获取提供程序 com.crashlytics.android.CrashlyticsInitProvider java.lang.ClassNotFoundException

在 Android 上,Crashlytics 能否“看到”服务中发生的崩溃?