我已经遵循并三次验证了添加Firebase的所有设置步骤
问题是,当上传到Google Play(关闭测试)时,崩溃报告确实会显示在Google Play预发布测试期间发生的崩溃,包括“崩溃测试”按钮,然后我会得到无崩溃用户、日志、堆栈跟踪等。因为这个部分正在工作,所以我的设置似乎是正确的。
我在设备上安装了 Proton VPN,但在测试期间禁用了它。这似乎并不重要。
注意:我无法让崩溃上传是否应用程序随后下载(测试版)从谷歌播放或是否我编译,调试或发布,以便运行它与Android Studio与USB调试到同一设备(但我必须卸载一个安装另一个,只有下载的一个有选项报告崩溃-我不知道是否会上传崩溃,如果我不选择报告,但我从未见过报告的崩溃,在Play控制台,Firebase或其他任何地方。)
有人知道我如何在预发布测试之外将崩溃报告给Crashlytics吗?是否有任何先决条件,如“应用程序必须已上传了相同的版本”或“不允许VPN”或“报告”必须在设备上的弹出对话框中选择崩溃后”或“显示版本字符串不得包含空格”或其他任何东西?(从我在文档上读到的一些东西来看,似乎我应该能够测试一个本地版本并获得崩溃报告。)
我正在使用最新的“花栗鼠”工作室。我刚更新到最新的firebase BOM。
从我的项目级build. gradle:
buildscript {
repositories {
google()
mavenCentral()
maven {url "https://plugins.gradle.org/m2/" }
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
//classpath 'com.google.android.gms:oss-licenses-plugin:0.9.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
//classpath 'com.github.jk1:gradle-license-report:1.9'
classpath 'com.github.jk1:gradle-license-report:2.0'
classpath 'com.google.gms:google-services:4.3.13'
// Add the Crashlytics Gradle plugin
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
}
} ...
从我的模块级build.gradle:
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
}
...
repositories {
maven { url "https://jitpack.io" }
mavenCentral()
}
dependencies {
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:30.4.0') // Bill Of Materials
implementation 'androidx.appcompat:appcompat:1.4.2' // this is last version compatible with Android sdk 31
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.navigation:navigation-ui:2.5.1'
implementation "androidx.lifecycle:lifecycle-process:2.5.1"
implementation 'androidx.lifecycle:lifecycle-common-java8:2.5.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'org.jetbrains:annotations:15.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.preference:preference:1.2.0'
implementation 'androidx.biometric:biometric:1.1.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
implementation 'org.apache.commons:commons-math3:3.6.1'
implementation 'com.github.drawers:SpinnerDatePicker:2.1.0'
testImplementation 'junit:junit:4.13-beta-2'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'ch.qos.logback:logback-classic:1.2.10'
implementation 'ch.qos.logback:logback-core:1.2.10'
implementation 'org.codehaus.janino:commons-compiler:3.1.6'
// for in-app purchases (data service subscription)
implementation 'com.android.billingclient:billing:5.0.0'
// for message broadcasting, diagnostics & analytics
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-messaging'
}
在我的主要活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Obtain the FirebaseAnalytics instance.
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
...
// TODO remove in production
addTestCrashButtonForCrashlytics();
...
}
private void addTestCrashButtonForCrashlytics() {
Button crashButton = new Button(this);
crashButton.setText("Test Crash");
crashButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
throw new RuntimeException("Test Crash"); // Force a crash
}
});
我提前感谢所有能帮我解决这个问题的人。
的儿子...!在这个问题上花了几天时间,我才找到了答案——实际上,问题是显示版本中有空格。因此,在模块级build.gradle中,我有一个描述性的版本名称,它在Google Play中解释了最新的变化摘要:
versionName "2022.08.31.99 Blah, blah blah"
,在错误"E/FirebaseCrashlytics:设置请求失败。 java.io. FileNotFoundException: https://firebase-settings.crashlytics.com/spi/v2/platforms/android/gmp/(剪切)
versionName "2022.08.31.99"
我重新编译了它,并在手机上的USB上运行它,点击测试崩溃按钮,几乎立即得到了一份崩溃报告。支持它,问题就出现了,把它放回去,它起作用了!希望这对其他人有所帮助!
顺便说一下,这是使用一个运行在USB上的本地调试版本工作的。此外,它不必与Google Play中上传的版本相匹配——我随后增加了它,它仍然报告崩溃。它似乎有一个VPN的问题(它可能是特定的服务器,或者可能只是不允许在VPN上。)这些是自动上传到Crashlytics的崩溃——我不需要在弹出窗口中选择“报告”,实际上也不能,因为它们是本地构建,正如我前面提到的,没有提供那个选项。
应用程序分级: 请帮我解决这个问题。
问题内容: 就像我在标题中说的那样,我正在为iPhone编写一个应用程序,该应用程序可以在调试模式下完美运行,但是当我将其构建为发行版并通过TestFlight安装时,它会崩溃。由于崩溃日志,它可能必须使用以下代码行: 我使用的是Brother的框架而不使用AirPrint进行打印,但是我认为这不是问题,因为应用程序在对框架执行某些操作之前便崩溃了。它仅在我执行这些行的ViewController
当前崩溃报告显示为 异常java.lang.nullpointerException: com.temp.app.helper.convertToString(helper.java:(此处无行号)) com.temp.app.fragment.fragment.fragmentEntername$6.run(fragmentEntername.java:(此处无行号)) android.os.h
我已经成功地将Firebase集成到我的项目中 (身份验证和存储工作很好),但是在简单地集成了Crashlytics并故意(而不是故意)崩溃我的应用程序之后:-没有崩溃报告出现在崩溃仪表板中。 我确实在logcat: d/firebaseApp:com.google.Firebase.crash.firebaseCrash不链接。跳过初始化 i/CrashlyticScore:Crashlytic
我有应用程序上传在玩商店。它在调试模式下运行良好,但当我从play store下载相同的APK(发布模式)时,它就崩溃了。我无法确定堆栈跟踪没有给出准确的错误位置。 java.lang.RuntimeException:在Android.os.AsyncTask$3上完成(asynctask.java:318)在java.util.concurrent.FutureTask.FinishCompl
Crashlytics在没有选择输入报告的情况下工作得很好。但一旦我根据教程设置了选择输入报告,它就会停止报告任何内容。 具体地说,我在中添加了以下内容 我注意到这一行很有趣:这可能是问题的原因。但我找不到任何关于这篇日志的信息。
注意:我已经添加了所有的依赖项,包括崩溃和核心依赖项,还有插件和类路径 提前谢谢你。
> (IBAction)CrashButtonTapped:(id)发件人{[[Crashlytics sharedInstance]crash];} 单击play_arrow Build,然后在Xcode中运行当前方案,在设备或模拟器上构建应用程序。