Crashlytics - 当应用程序在未连接到 android studio 时崩溃时无法获取崩溃报告
Posted
技术标签:
【中文标题】Crashlytics - 当应用程序在未连接到 android studio 时崩溃时无法获取崩溃报告【英文标题】:Crashlytics - Unable to get crash reports when the app crashes while not connected to android studio 【发布时间】:2017-02-21 18:31:09 【问题描述】:我在我的应用中使用 Fabric.io 的 crashytics。
这是我在 MainActivity.java
的最后一个 onCreate()
方法中初始化它的方式:
Fabric.with(this, new Crashlytics());
这是build.gradle (Project: abc)
文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript
repositories
mavenCentral()
maven url 'https://maven.fabric.io/public'
dependencies
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'io.fabric.tools:gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
jcenter()
maven url "https://dl.bintray.com/hani-momanii/maven"
task clean(type: Delete)
delete rootProject.buildDir
这是build.gradle (Module: app)
文件:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig
applicationId "com.xxx.abc"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
repositories
mavenCentral()
maven
url "https://jitpack.io"
maven url 'https://maven.fabric.io/public'
dexOptions
javaMaxHeapSize "4g"
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar')
transitive = true;
apply plugin: 'com.google.gms.google-services'
和
<meta-data
android:name="io.fabric.ApiKey"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
/>
定义在AndroidManifest.xml
之间的<application>
标记中。
问题是,当应用程序在未连接到 Android Studio 时崩溃时,我无法获取崩溃报告,尽管当应用程序在连接到 Android Studio 时崩溃时我会收到报告。
为什么会发生这种情况以及我如何在应用每次崩溃时获取崩溃报告,无论是否连接到 Android Studio?
【问题讨论】:
在应用程序崩溃后是否重新启动应用程序,其次是否启用即时运行。如果是,请尝试使用即时运行功能再次卸载和安装。 @AnuragSingh 即时运行功能有何影响? 可能是因为您第一次使用 fabric 构建您已连接到 android studio。但是当您断开与它的连接时,您的构建可能没有最新的更改。 【参考方案1】:从 Activity
中删除并放入 Application 类
public class MyApplication extends Application
@Override
public void onCreate()
super.onCreate();
Fabric.with(this, new Crashlytics());
不要忘记在manifest.xml
的Application标签中添加名称
<application
...
android:name=".MyApplication"
...
</application>
【讨论】:
这个应用程序类在哪里? 你必须像创建活动一样创建! 我应该把它从 MainActivity 中删除吗? 用于测试:您可以将null
设置为正在访问的任何对象。它将与NPE
一起崩溃
让我们continue this discussion in chat。以上是关于Crashlytics - 当应用程序在未连接到 android studio 时崩溃时无法获取崩溃报告的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序未连接到 xcode 时,iOS 8 静默推送通知不会触发 didReceiveRemoteNotification 方法
didReceiveRemoteNotification:当应用程序处于后台并且未连接到Xcode时未调用fetchCompletionHandler
未连接到服务器时从 Android webview 中的应用程序缓存加载