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 应用程序的分发
无法获取提供程序 com.crashlytics.android.CrashlyticsInitProvider java.lang.ClassNotFoundException