CrashlyticsデータがFirebaseCrashlyticsビューに表示されません。 「クラッシュフリー統計」は75%と表示されているため、一部のデータが記録されているようです。また、Fabricと古いFirebase Crash Reportingインターフェースの両方、およびDebugViewに一般的なイベントとしてクラッシュが即座に表示されますが、Crashlyticsページの[Issues]セクションには何も表示されません。おそらく私のFabricプロジェクトはFirebaseプロジェクトにリンクされていないと思いましたが、このリンクを使用して手動で実行しようとすると https://www.fabric.io/firebase_migration/apps プロジェクトはすでにリンクされています。具体的には、Project already contains a linked app with that bundle ID and platform
と表示されています。 Android studioでアプリを開くたびに、すぐにコマンド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'
私はButtonを使用して、次のコードでクラッシュを強制しています(前述したように、これらのクラッシュは、Fabricと、非推奨で2日以内に削除される古いCrash Reportingインターフェイスにほぼ即座に表示されます!)。クラッシュボタンのコードは次のとおりです。
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));
[〜#〜]編集[〜#〜]
Firebaseの移行ステータスページに「0/1APPLINKED」と「NOPROJECTSYET」と表示されていることに気づきました。
また、Android studioを開くたびに、FabricプラグインからCrashlyticsライブラリを再インストールする必要があります。依存関係はすでにgradleファイルに存在しますが、プラグインはそれらを認識していないようです。
[〜#〜]編集[〜#〜]
現在、ファブリックとFirebaseのリンクを解除しようとしているので、新しいものから再度リンクしてみることができます。この質問に出くわしました 既存のfirebaseアプリのリンクを解除しますか? ですが、ファブリックはプロジェクトの統合としてリストされていません。
ファブリックを忘れてください、それは必要ではありません。 FirebaseコンソールとFirebaseドキュメントの指示に従ってください: https://firebase.google.com/docs/crashlytics/get-started#Android
Fabricコンソールを台無しにしないでください。Firebaseドキュメントに記載されているように、Fabricコンソールへの呼び出しを完全に削除し、プロジェクトを最初から構成する必要があります。正しく構成されたアプリを実行するとすぐに、FirebaseコンソールにCrashlyticsパネルが表示されます
私が見つけた唯一の解決策は次のとおりでした(関連性がない場合でも、実行したとおりにすべての手順を含めています)。
gradlew.bat clean
(私はWindowsを使用しています)コマンドラインからプロジェクトに。Ctrl+Shift+F
(すべてのプロジェクトファイルを検索)単語fabricおよびcrash Fabric、Crashlytics、または非推奨のCrash Reportingライブラリへの参照がまったく残っていないことを確認するためです(これは、Firebaseアシスタントツールが最初に試したときにクラッシュレポートの依存関係として追加したため、build.gradleの依存関係でした。これを機能させるために、すぐに非推奨になったことを教えてくれました:/)。この方法には、不要なデータベースやユーザープロパティを削除できるという追加の利点がありました(Firebaseでは、作成後に削除することは現在許可されていません> :()が、この方法は明らかに実行できない可能性がありますFirebaseプロジェクトにすでに多くの投資をしていて、最初からやり直すことができない人は誰でも。幸いなことに、これはそれほど苦痛ではありませんでした。
私はあなたと同じ問題を抱えていました。 この回答 の指示に従って、FirebaseからCrashlyticsのリンクを解除した後、FabricをFirebaseにリンクできました。残念ながら、これはカスタムURLを自分で作成することによってのみ実行できました。