Crashlytics报告无法从https://settings.crashlytics.com/检索设置

时间:2013-09-30 16:11:32

标签: java android crashlytics

我的应用程序运行良好的调试版本,我可以看到每个设备上报告的Crashlytics异常,我测试了应用程序的功能。但是,当我通过Jenkins获得发布版本时:

一个。应用程序卡在启动屏幕中,该屏幕为空白。

湾获取'应用已停止'对话框。

我在执行发布版本时发现了一些logcat消息:

首先:它转储以下异常

09-30 09:49:05.561: I/Crashlytics(5696): Initializing Crashlytics 1.0.4.15
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): .     |  | 
09-30 09:49:05.591: E/Crashlytics(5696): .     |  |
09-30 09:49:05.591: E/Crashlytics(5696): .     |  |
09-30 09:49:05.591: E/Crashlytics(5696): .   \ |  | /
09-30 09:49:05.591: E/Crashlytics(5696): .    \    /
09-30 09:49:05.591: E/Crashlytics(5696): .     \  /
09-30 09:49:05.591: E/Crashlytics(5696): .      \/
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): Something is missing! Find it here: 
09-30 09:49:05.591: E/Crashlytics(5696): http://www.crashlytics.com/api/v1/[API_KEY]/android/confirm/[PACKAGE_NAME]
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): .      /\
09-30 09:49:05.591: E/Crashlytics(5696): .     /  \
09-30 09:49:05.591: E/Crashlytics(5696): .    /    \
09-30 09:49:05.601: E/Crashlytics(5696): .   / |  | \
09-30 09:49:05.601: E/Crashlytics(5696): .     |  |
09-30 09:49:05.601: E/Crashlytics(5696): .     |  |
09-30 09:49:05.601: E/Crashlytics(5696): .     |  |
09-30 09:49:05.601: E/Crashlytics(5696): .
09-30 09:49:05.601: D/AndroidRuntime(5696): Shutting down VM
09-30 09:49:05.601: W/dalvikvm(5696): threadid=1: thread exiting with uncaught exception (group=0x40ad8228)
09-30 09:49:05.601: E/AndroidRuntime(5696): FATAL EXCEPTION: main
09-30 09:49:05.601: E/AndroidRuntime(5696): java.lang.RuntimeException: Unable to start activity ComponentInfo{[PACKAGE_NAME]/[ACTIVITY_NAME]}: com.crashlytics.android.CrashlyticsMissingDependencyException: 

第二:无法从 https://settings.crashlytics.com/spi/v1/platforms/android/apps/[APP_PACKAGE_NAME]/settings检索设置; [class org.json.JSONException:无法将类型java.lang.String的值无效转换为JSONObject]

第三:经常抱怨清单中没有API_KEY。但是它已经存在于清单中,并且在调试版本中运行良好。

<meta-data android:name="com.crashlytics.ApiKey" android:value="[crashlytics_api_key]"/>

<application>标记内。

我也做了以下事情:

  1. 跟随异常跟踪中提到的url,但它会将我重定向到crashlytics / downloads页面。可能我没有权限。

  2. 在build.xml中添加了<import file="./ant_tasks/crashlytics_build.xml"/>并包含以下源文件: crashlytics_build_base.xml,crashlytics_build.xml,crashlytics-devtools.jar和crashlytics.jar

  3. 在Order&amp;中导出crashlytics.jar文件导出/ .classpath。

  4. <classpathentry exported="true" kind="lib" path="libs/crashlytics.jar"/>

    但仍然没有帮助。

    当我在Application.onCreate()

    中取消注释Crashlytics.start(getApplicationContext());

    调试和发布版本都可以正常工作,当然我没有得到任何崩溃报告。

    @Override
    public void onCreate() {
        super.onCreate();
        Crashlytics.start(getApplicationContext());
    }
    

    如果有人遇到类似问题,请帮我解决。非常感谢提前。

    仅供我理解:

    1. Crashlytics是否为调试和发布版本提供了不同的API_KEY?
    2. 我是否甚至需要使用crashlytics构建文件?
    3. 发布版本我缺少什么?

1 个答案:

答案 0 :(得分:1)

听起来好像你没有在正确的位置获得编译时库和属性。我猜测“我的应用程序在调试版本中运行正常”,你正在使用不同的构建环境(可能是IDE)但是在Jenkins上,你正在使用像Maven这样的东西。 IDE集成将帮助您进行大量调试,但还有其他步骤可以获得构建功能命令行。

当您转到他们推荐的下载页面时,应该有关于如何将Crashlytics部署到任何构建系统的说明。您需要选择正确的,然后将它们的确切内容复制/粘贴到构建文件中。我已经为Maven做了这个,只要你在你的POM中得到正确的东西,你就应该全力以赴。对于gradle,它甚至可能更容易。