Mel*_*e D 13 android firebase crashlytics android-studio google-fabric
我们已经编写了一个Android应用程序,并尝试对我们的应用程序实现Crashlytics。
我们有不同类型的问题。 我们使用的版本:Android Studio版本:3.3
Gradle版本: classpath'com.android.tools.build:gradle : 3.3.1'
插件: Android Studio v4.3.0的Fabric
实现: 实现('com.crashlytics.sdk.android:crashlytics:2.9.9'){传递=真}实现('io.fabric.sdk.android:fabric:1.4.0@aar'){传递=真}
gradle-wrapper.properties:distributionUrl = https://services.gradle.org/distributions/gradle-5.2.1-all.zip
第一个问题:
当我们实现Crashlytics时,您知道开发人员需要3个步骤。我们不能跳过2,3。步骤,因为我们没有编译我们的应用程序。我们得到两个主要错误:
错误1:
此应用程序依赖于Crashlytics。请通过https://fabric.io/sign_up注册访问权限,
错误2:
E/CrashlyticsCore: The Crashlytics build ID is missing.This occurs when
Crashlytics tooling is absent from your app's build configuration.
Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
Run Code Online (Sandbox Code Playgroud)
因此,我们禁用了Debug mod来完成Crashlytic的实现。
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
Fabric.with(this, crashlyticsKit); // Tod from Fabric suggested in stackoverflow
Run Code Online (Sandbox Code Playgroud)
并实现完成。
但是我们不想这样做。因为当我们崩溃时,它不会向Crashlytics或Firebase报告。我们还希望获得调试mod的崩溃信息。
当我们删除-> ....disabled(BuildConfig.DEBUG) -时,它再次显示:错误1,错误2。
第二个问题:
摇摇欲坠; Apply插件:'io.fabric'被注释,当我们取消注释时,我们得到
错误3:
WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getExternalNativeBuildTasks(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
Affected Modules: app
Run Code Online (Sandbox Code Playgroud)
当我们搜索它时,此错误与新的android studio gradle有关。因此,我们需要评论“应用插件:fabric.io”。对此没有好的解决方案。
要运行应用程序,我们无法删除:
new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build() :(由于Error1 Error2)
因此,我们尝试启用报告的不同方式:
我们已经添加了什么?
1.在gradle中启用:
buildTypes {
debug {
manifestPlaceholders = [crashlyticsEnabled: true]
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
manifestPlaceholders = [crashlyticsEnabled: false]
}
Run Code Online (Sandbox Code Playgroud)
2.在清单中启用
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="true" />
Run Code Online (Sandbox Code Playgroud)
3.在亚行启用
adb shell setprop log.tag.Fabric DEBUG
adb shell setprop log.tag.CrashlyticsCore DEBUG
Run Code Online (Sandbox Code Playgroud)
但是Crashlytics或Firebase仍然没有得到任何Debug Crash报告吗?我们期待您的解决方案。
Ale*_*Pad 18
今天,我从 Fabric Crashlytics 迁移到 Firebase Crashlytics,但遇到了一个让我无法继续前进的致命错误。我所做的是:在 app-> build.gradle 中:
apply plugin: 'io.fabric'
dependencies {
implementation "com.google.firebase:firebase-core:17.2.0"
// Add dependency
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
}
Run Code Online (Sandbox Code Playgroud)
一般来说,build.gradle:
buildscript {
repositories {
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'io.fabric.tools:gradle:1.31.2' // Crashlytics plugin
}
Run Code Online (Sandbox Code Playgroud)
当然,从 Firebase 下载 json 文件并将其插入到 app 文件夹中。
完成这些简单的步骤后,我在启动应用程序时收到此错误
缺少 Crashlytics 构建 ID。当您的应用程序的构建配置中缺少 Crashlytics 工具时,就会发生这种情况。请查看 Crashlytics 入门说明并确保您拥有有效的 Crashlytics 帐户。
我去检查没有任何代码可以调用旧的 Fabric 方法,实际上我发现在 app-> build.gradle 我有这个:
buildTypes {
debug {
minifyEnabled false
debuggable true
**ext.enableCrashlytics = false**
ext.alwaysUpdateBuildId = false
}
}
Run Code Online (Sandbox Code Playgroud)
ext.enableCrashlytics = false当然这是一种引用旧 Fabric 的方法,所以我删除了这一行,一切都完美无缺!我希望能帮助别人解决这个问题
tom*_*ozb 10
就我而言,我缺少 Crashlytics 插件:
apply plugin: 'com.google.firebase.crashlytics'
Run Code Online (Sandbox Code Playgroud)
将该行放在模块build.gradle文件的顶部,例如
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.crashlytics'
Run Code Online (Sandbox Code Playgroud)
我设法得到这个固定无需添加android.debug.obsoleteApi=true在gradle.properties。
我基本上Firebase使用适当的风味配置和提供的google-services.json文件将3种风味连接到了不同的项目。
与我的比较,您的gradle文件缺少的是:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "com.google.gms:google-services:$google_services_version" // google-services plugin
classpath "io.fabric.tools:gradle:$fabric_tools_version"
}
Run Code Online (Sandbox Code Playgroud)
apply plugin: "io.fabric"
最后: implementation "com.google.firebase:firebase-crash:16.2.1"
我知道Fabric今年将要关闭,但是通过以这种方式运行这些应用程序,它们可以Firebase毫无问题地连接到控制台。
关于风味配置,我下载了三个不同的json文件(我有3种风味),并将它们添加到每种风味的根目录中。例如:
flavor1:
assets
java
res
AndroidManifest
google-services.json (for flavor1)
flavor2:
assets
java
res
AndroidManifest
google-services.json (for flavor2)
Run Code Online (Sandbox Code Playgroud)
就是这样。希望这对某人有帮助。
如果您ext.enableCrashlytics = false为构建变体设置但仍尝试调用Fabric.with(context, Crashlytics())应用程序初始化代码,也会发生这种情况。ext.enableCrashlytics = false禁用构建插件(为使调试构建更快而进行的优化),但是当然缺少构建ID。
| 归档时间: |
|
| 查看次数: |
13552 次 |
| 最近记录: |