Crashlyitics не появляется в Firebase - PullRequest
       28

Crashlyitics не появляется в Firebase

0 голосов
/ 07 сентября 2018

Мои данные Crashlytics не отображаются в представлении Firebase Crashlytics. Он показывает, что «статистика без сбоев» составляет 75%, поэтому он, похоже, записывает некоторые данные. Я также вижу, что сбои появляются мгновенно как в Fabric, так и в старом интерфейсе Firebase Crash Reporting, а также в DebugView как общие события, но ничего в разделе «Проблемы» на странице Crashlytics. Я подумал, что, возможно, мой проект Fabric не был связан с моим проектом Firebase, но когда я попытался сделать это вручную, используя эту ссылку https://www.fabric.io/firebase_migration/apps, он говорит мне, что проекты уже связаны, в частности, он говорит Project already contains a linked app with that bundle ID and platform. Каждый раз, открывая свое приложение в Android-студии, я сразу же запускаю команду adb shell setprop debug.firebase.analytics.app ie.moses.keepitlocal, чтобы мои события появлялись в DebugView, возможно, это может повлиять на это, но я сомневаюсь в этом.

Вот мой файл build.gradle моего проекта:

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }

    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'
        classpath 'com.google.gms:google-services:3.3.0'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
        }

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

и это build.gradle для моего конкретного модуля приложения

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

def supportLibraryVersion = '27.1.1'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "ie.moses.keepitlocal"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 5
        versionName "0.3.1-alpha"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        debug {
            buildConfigField 'boolean', 'CRASHLYTICS', 'true'
        }

        release {
            buildConfigField 'boolean', 'CRASHLYTICS', 'true'
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'com.android.support') {
            // Used to prevent conflicting versions of Android support library
            // contained in other dependencies (e.g. all the firebase dependencies)
            details.useVersion supportLibraryVersion
        }
    }
}

dependencies {
    implementation files('libs/YouTubeAndroidPlayerApi.jar')
    implementation "com.android.support:appcompat-v7:$supportLibraryVersion"
    implementation "com.android.support:recyclerview-v7:$supportLibraryVersion"
    implementation "com.android.support:cardview-v7:$supportLibraryVersion"
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'com.google.firebase:firebase-crash:16.2.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    implementation 'com.github.bumptech.glide:glide:4.7.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
    implementation 'com.google.guava:guava:26.0-android'
}

apply plugin: 'com.google.gms.google-services'

Я использую кнопку, чтобы вызвать сбой с помощью следующего кода (как я уже говорил, эти сбои появляются почти сразу в Fabric и в старом интерфейсе отчетов о сбоях, который устарел и будет удален через 2 дня!). Вот код для кнопки сбоя:

Button crashButton = new Button(this);
        crashButton.setText("Crash!");
        crashButton.setOnClickListener(view -> {
            throw new IllegalStateException("you hit the crash button!");
        });
        addContentView(crashButton, new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));

EDIT

Я только что заметил, что на странице состояния перехода Firebase написано «0/1 APP LINKED» и «NO PROJECTS YET».

enter image description here

Мне также нужно переустанавливать библиотеку Crashlytics из плагина Fabric каждый раз, когда я открываю Android studio. Зависимости уже существуют в моем файле Gradle, но плагин, кажется, не распознает их.

EDIT

Я сейчас пытаюсь разорвать связь между фабрикой и базой данных, чтобы я мог попробовать связать их снова с нуля Я сталкивался с этим вопросом Отключить существующее приложение Firebase? , но Fabric даже не указан в качестве интеграции в моем проекте.

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Забудьте ткань, это не требуется. Просто следуйте инструкциям в вашей консоли Firebase и документации Firebase: https://firebase.google.com/docs/crashlytics/get-started#android

Не связывайтесь с консолью Fabric, вы должны полностью удалить любые вызовы на консоль Fabric и настроить свой проект с нуля, как говорит док Firebase. Как только вы запустите приложение, настроенное правильно, вы увидите панель Crashlytics в вашей консоли Firebase

0 голосов
/ 07 сентября 2018

У меня была такая же проблема, как и у вас. Я смог связать Fabric с Firebase после удаления Crashlytics из Firebase, следуя инструкциям этого ответа . К сожалению, это можно сделать только с помощью создания собственного URL.

0 голосов
/ 07 сентября 2018

Единственное решение, которое я смог найти, было следующее (я включаю все шаги в точности так, как я их выполнил, даже если они могут быть неактуальными):

  1. Я экспортировал свою базу данных в реальном времени в JSON и сделал копию правил моей базы данных.
  2. Я удалил свое приложение из проекта Firebase.
  3. Я удалил проект Firebase.
  4. Я удалил свой проект из Fabric.
  5. Я удалил все ссылки на Fabric, Crashlytics и старую библиотеку Firebase Crash Reporting из моего проекта, это состояло в удалении зависимостей как из моих файлов build.gradle, так и в удалении файла fabric.properties.
  6. Я запустил gradlew.bat clean (я на Windows) для моего проекта из командной строки.
  7. Я выполнил Ctrl+Shift+F (поиск по всем файлам проекта) для слов fabric и crash , просто чтобы убедиться, что не осталось абсолютно никаких ссылок на Fabric, Crashlytics или устаревшие Библиотека отчетов о сбоях (которая до сих пор была зависимостью в моем build.gradle, но я этого не осознавал, потому что инструмент помощника Firebase добавил это как зависимость отчета о сбоях, когда я впервые попытался заставить это работать, а затем сразу сказал, что это устарело: /).
  8. Я искал в Проводнике файлов в Windows любые файлы, ссылающиеся на "Fabric" или "Crash" (их не было).
  9. Я создал новый проект на Firebase.
  10. Я импортировал свою базу данных в реальном времени из ранее экспортированного файла JSON и скопировал / вставил обратно в мои правила.
  11. Я заново создал свою учетную запись для одного тестового пользователя (к счастью, приложение еще не запущено: p).
  12. Я снова включил аналитику (хотя для этого просто нужно было перейти на вкладку «Аналитика» и увидеть, что она уже включена, поскольку у меня все еще была зависимость в моем build.gradle для модуля приложения).
  13. Я пошел на вкладку Crashlytics и увидел оригинальный экран, объясняющий, как включить Crashlytics. На этот раз, однако, я не создавал проект на Fabric и не устанавливал плагин Fabric, я только скопировал в зависимости от Fabric, как я думаю, @jake предлагал, их можно найти здесь https://firebase.google.com/docs/crashlytics/get-started?authuser=0.
  14. Затем я попытался произвести сбой, используя метод, описанный здесь https://firebase.google.com/docs/crashlytics/force-a-crash?authuser=0.
  15. А потом вуаля! Авария сразу появилась на вкладке Crashlytics в Firebase. Нет проекта Fabric, нет плагина Fabric, только зависимости.

Этот метод имел дополнительное преимущество, позволяя мне избавиться от лишних баз данных и пользовательских свойств, которые я не хотел (которые в настоящее время Firebase не позволяет вам удалять, когда вы их создаете> :(), но этот метод, очевидно, не может быть выполнимым для любого, кто уже вложил много средств в свой проект Firebase и не может просто начать все сначала. К счастью для меня, это не было слишком большой болью.

...