Fabric Crashlytics坚持构建并运行

时间:2017-06-20 18:58:48

标签: android android-studio crashlytics google-fabric

目前,我正在尝试将Crashlytics集成到Android应用程序中。但是,我无法识别应用程序并将其添加到Fabric Dashboard。

按照以下步骤使用Android Studio Fabric插件时:

  1. 新App
  2. 选择Crashlytics
  3. 应用代码更改
  4. 同步gradle
  5. 重建项目
  6. 将应用构建到设备上(非虚拟)
  7. 然而,当我这样做时,Fabric插件仍然停留在“请构建并运行您的应用程序”屏幕上,并最终给出错误消息“已经有一段时间了。需要一些帮助吗?”

    我还尝试手动安装Crashlytics,方法是使用此链接自行添加代码:https://fabric.io/kits/android/crashlytics/install

    但是当我构建应用程序时,我的Fabric Dashboard中仍然没有发生任何事情。

    我已经尝试再次检出分支并重新添加此代码无济于事。我也尝试重新安装Fabric IDE插件,重启Android Studio并重启我的机器。

    我已按照相同步骤成功将Crashlytics添加到其他应用程序中。

    有什么想法吗?

8 个答案:

答案 0 :(得分:6)

我遇到了同样的问题 - 在应用程序启动期间,Fabric-plugin屏幕中没有任何内容说“请构建并运行您的应用程序”。

在我禁用即时运行(首选项>构建执行部署>即时运行)后,它开始工作,然后重建并运行应用程序。

答案 1 :(得分:1)

我遇到了类似的问题-一个月前,我重构了软件包名称,并以错误的char命名(西里尔字母с而不是拉丁字母c),这是我现在仅通过查看Java代码查看的十六进制编辑器。在build.gradle中, applicationId =“ package name” 的写法与* .java文件中的package name类似,但是拉丁语中只有所有字符是正确的。 简单地将应用程序包名称重构为正确的名称(等于appliationId和clean / build项目)无法解决Fabric Crashlytics的问题。包名称可能留在另一个文件中可能是错误的,不仅在* .java,清单和gradle中。我不知道因为我下一步进行了完全重构:

1)删除由Fabric插件添加的所有代码行(如果您使用自动代码插入)或从build.gradle(应用程序),AndroidManifest.xml,MainActivity.java中手动添加的所有代码行。

2)通过 Edit> Find>在路径中替换

将旧软件包名称替换为新软件包名称

3)手动将所有需要的最小项目文件复制到新项目文件夹中。我复制了这些文件夹和文件

NewProjectFolder/build.gradle
NewProjectFolder/app/build.gradle
NewProjectFolder/app/src/*
NewProjectFolder/app/libs/*

4)关闭当前项目,在“欢迎使用Android Studio”中选择“导入项目”,然后在新项目文件夹中选择项目。

5)进行一些重构以正常运行您的应用程序(我使用Firebase,因此我将此新应用程序添加到Firebase控制台中的Firebase项目中,并将新的 google-services.json 下载到NewProjectFolder / app /)

6)确保您的应用运行良好,并在重构之前将其停止

7)启动Fabric插件,按“ +新应用”>“ Crashlytycs”>“安装”>“应用” ,以将Fabric的代码自动安装到build.gradle(应用),AndroidManifest.xml,MainActivity.java。

8)运行您的应用,然后等待“完成!”在Fabric插件上。之后,您可以在Crashlytics仪表板中查看您的应用。

它已为我的项目工作,希望对您有所帮助。

答案 2 :(得分:0)

我也有这个问题。确保将应用程序包重命名为与应用程序ID相同的名称。

例如,我有包结构com/exampleapp/,但它应该是com/companydomain/appname,因为应用程序ID是com.companydomain.appname

答案 3 :(得分:0)

在这里有同样的问题,我决定做这些事情:

首先,在你的app build.graddle文件中添加:

defaultConfig {
    applicationId "<your package name>"
}

如果没有解决,请尝试将您的applicationId更改为与您的包不匹配的其他应用程序。

出于某种原因,他们在这里工作。

答案 4 :(得分:0)

可能您忘记在应用程序级别gradle.build文件的开头添加了apply plugin: 'io.fabric'

答案 5 :(得分:0)

也有这个问题,然后

  

我重构了我的应用程序包名称

  

在gradle中更改了应用程序ID名称

再次建造它,问题解决了。

答案 6 :(得分:0)

确保在清单文件中包括其专用gradle.build和meta的所有依赖项。接下来是通过互联网连接在设备上引发强制运行时错误,也不要忘记首先使用cost = [1,2,4,5] #method1 for i in cost[:2]: #do something for the first two elements print(i) #method2 for i in range(2): #do something for the first two elements print(cost[i]) 对其进行初始化。如果这不起作用,请尝试在Android Studio中下载Android版Fabric插件,然后选择您的软件包。

答案 7 :(得分:0)

这对我有帮助: https://developer.android.com/studio/build/optimize-your-build#disable-crashlytics-build-id

如果您想在调试版本中使用Crashlytics,仍然可以 通过防止Crashlytics更新来加快增量构建 每次构建期间具有自己唯一的构建ID的应用资源。因为 此版本ID存储在资源文件中, 清单,禁用自动生成版本ID也可以使您 在调试版本中,将Apply Changes和Crashlytics结合使用。

要防止Crashlytics自动更新其内部版本ID,请将以下内容添加到您的build.gradle文件中:

android {
  ...
  buildTypes {
    debug {
      ext.alwaysUpdateBuildId = false
    }
}