问题标签 [crashlytics-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1178 浏览

android - Fabric Crashlytics for android - 如何在 stackTrace 区域中包含附加信息

我想在 crashlytics 异常记录期间另外发送一个对象转储。因此,例如,假设发生了一个 nullPointerException。我想另外添加一个大对象,这将是我的模型,并将其包含在 crashlytics 的堆栈跟踪区域中。这样,当我看到堆栈跟踪时,我还可以从转储中查看模型信息。除了通常的 crashlytics 日志记录之外,我如何发送这些信息?这是我到目前为止所拥有的:

现在发生的是什么都没有出现。但是如果我注释掉“消息”的 setString,那么我会得到一个带有消息“我的酷消息”的堆栈跟踪。

更新:我什至尝试过 Crashlytics.log(Model.toString()); 但这在 crashlytics 上没有显示任何内容。我正在从 onCreate 中的 Application 子类设置 crashlytics,如下所示: Fabric.with(this, new Crashlytics());

从 cashlytics 文档中我发现了这个:

为确保发送崩溃报告对用户设备的影响最小,Crashlytics 日志的最大大小为 64 KB。当日志超过 64 KB 时,将删除最早记录的值以保持此阈值。

这可能是我的问题。现在检查我的尺码...

调整有效载荷的大小不起作用。我制作了有效载荷 9 个字符,但它仍然没有出现。

更新:

让我们重新开始,但更简单。为什么以下对我不起作用?

这里发生的事情确实是一个堆栈跟踪出现在 crasylytics 仪表板中,上面写着“我的酷消息”,但没有任何关于优先级、标签或消息的内容。只有堆栈跟踪出现。那里不应该有这些标题或其他东西的条目吗?

0 投票
1 回答
1369 浏览

android - 内存不足会导致本机代码中的段错误吗?

我在本机代码中有一组很少见的崩溃,但在涉及 SEGV_MAPERR 或 SEGV_ACCERR 时一直发生。这些崩溃几乎总是由 Crashlytics 报告,其可用 RAM 非常低(通常为 1-5%)。“正常”崩溃(即我调试过的)在可用 RAM 中没有模式。

这些崩溃是否可能是由内存不足引起的?这将是什么机制?有什么方法可以判断这些是否与内存不足相关的崩溃或编程错误(错误地使用指针等)?在许多情况下,崩溃发生在我无法调试的库中,我无法在我的设备上复制崩溃。

以下是从开发人员控制台中提取的一些崩溃,因为在这些情况下,它在跟踪中提供了比 Crashlytics 更多的详细信息:

0 投票
1 回答
972 浏览

android - Using CrashAnalytics within an Android Module

I have Crashlytics working in my App.

I've added an Android Module to my App named 'engine-module' which has it's own Gradle dependencies.

I don't know how to import the Crashlytics dependency correctly and I just get the following error:

Error:(31, 13) Failed to resolve: com.crashlytics.sdk.android:crashlytics:2.6.5

What I want to achieve is being able to access 'Crashlytics' from a Class within the 'engine-module' for example:

Is this possible? If so, how can it be achieved?

Project: build.gradle

App/build.gradle

Module: engine-module/build.gradle

SOLVED:

Project: build.gradle

Module: engine-module/build.gradle

0 投票
0 回答
3448 浏览

android - 更改包名称和应用程序 ID

我想为我当前的项目更改包名称应用程序 ID,所以我分别通过refractor rename 和打开模块设置来做到这一点。

但这是我担心的两件事,我猜这可能会造成问题。

  1. 如果我的包名称是com.company.Abc然后项目名称是Abc我的项目名称仍然相同,所以我决定保留com.company.Xyz但项目名称仍然是Abc。但是我想这不会有问题,因为尽管我想更改项目名称与包名称无关。

我担心的事情:有一个文件名Abc.iml是一个配置文件,但是在 refractor 之后我没有得到任何Xyz.iml,我不知道这会做什么。

  1. 我面临的主要问题是我在当前项目中使用了结构崩溃分析,并且考虑到该项目正在显示以前的项目 ID。我已更改应用名称,但不知道如何更改。我确信这不会报告任何内容,因为我已经折射了包名称和项目 ID
0 投票
1 回答
811 浏览

android - 如何删除 Android 应用程序中的所有 Crashlytics 痕迹?

我正在尝试将应用程序转移到另一个机构。理想情况下,它就像更改组织 API 密钥并将其秘密添加到fabric.properties文件中一样简单。但这并没有发生。

我试图删除 Crashlytics 的所有痕迹,以便我可以像第一次一样安装它并选择所需的组织。因此,我删除了所有 Gradle 条目,即已Manifest删除fabric.properties文件中的一个条目。我还注销了 Fabric 插件并重新启动了 Android Studio,以防万一。但是,这不起作用。当我编译应用程序时,它会填充旧的组织数据。

那么如何才能完全删除 Crashlytics 的所有痕迹,使项目看起来就像我安装它之前一样?

PS。另外,如果有人知道如何将应用程序移动到另一个组织(可行的方法),请与我分享。

0 投票
1 回答
1432 浏览

android - Crashlytics(Android) 在下次崩溃前清除日志

我有一种情况,我想将一些日志添加到 Crashlystic for Android,但并不总是发送。然后在回到相同的功能之前,我想清除日志。为此,我似乎无法找到如何做到这一点。下图是情况说明:

问题是,当不清除日志时,下一次实际的非致命崩溃将包含所有不打算发送的所有时间的日志记录。我只需要上次bar()调用的日志。

0 投票
1 回答
703 浏览

android - Crashlytics - 当应用程序在未连接到 android studio 时崩溃时无法获取崩溃报告

我在我的应用程序中使用 Fabric.io 的 crashytics。

这是我MainActivity.java在最后一个方法中初始化它的onCreate()方式:

这是build.gradle (Project: abc)文件:

这是build.gradle (Module: app)文件:

<meta-data android:name="io.fabric.ApiKey" android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxx" />在标签AndroidManifest.xml之间定义。<application>

问题是,当应用程序在未连接到 Android Studio 时崩溃时,我无法获取崩溃报告,尽管当应用程序在连接到它时崩溃时我会收到报告。

为什么会发生这种情况?无论是否连接到 Android Studio,每次应用程序崩溃时,我如何获取崩溃报告?

0 投票
0 回答
313 浏览

android - 如何在不先运行 apk 的情况下将它们上传到 Crashlytics?

我们的 CI 服务器为我们构建功能,这是基于我们当前正在处理的任何功能分支的应用程序的自定义版本。我们喜欢在 Fabric 上安装应用程序,因为这样我们就可以轻松地将它们分发给团队并下载它们以通过 Fabric Beta 应用程序进行测试。使用 gradle task 上传 apk :app:crashlyticsUploadDistributionDevDebug

但是,如果该应用是 Crashlytics 的新应用,则此操作将失败;特别是如果它以前从未运行过。上传将失败并出现以下错误:

一个愚蠢的解决方法是让 CI 服务器在上传之前启动我们的应用程序片刻(例如,在模拟器或物理设备中),这样应用程序就可以运行Fabric.with(this, new Crashlytics());,从而将应用程序添加到 Crashlytics。

但是,我想避免这种情况,理想情况下只是在上传步骤之前运行一个 gradle 任务来添加应用程序,这样它就可以成功。这可能吗?

0 投票
2 回答
4319 浏览

android - 更新到 2.3 后,Android Studio 不会生成签名的 apk

在 Build->Generate Signed Apk 中生成发布版本后,我在将发布版本上传到 fabric(crashlytics) 时遇到了一些麻烦。将 app-release.apk 移动到 Fabric 窗口后,我看到以下错误:“提供的 APK 无法分发,因为它未签名。”

面料错误

我做错了什么?密钥库及其密码没有改变。

0 投票
1 回答
761 浏览

android - 在没有答案等的情况下自行初始化 Crashlytics 错误报告

我想初始化只有错误报告的 CrashlyticsCore,而不是自动内置使用报告的 Crashlytics。

我找到了这个答案: 如何初始化新版本的 crashlytics?

其中说要这样做:

我不确定“new”关键字是否应该存在。但是,无论有没有“新”,它都会出现以下错误:

有谁知道如何在没有 Crashlytics 的情况下初始化 CrashlyticsCore?