我有一个应用程序,我最近上传到Play商店,启用了Crashlytics。在此应用程序中,有一项名为 StartQuizActivity 的活动,该活动是在开发期间创建的,但目前尚未使用。该活动仍在清单中声明,但应用程序中没有调用它的意图。
我收到了一个崩溃报告,其中包含一个设备试图启动此活动的堆栈跟踪,这导致了IllegalArgumentException,表明所需的对象未通过intent传递:
致命异常:java.lang.RuntimeException:无法启动活动 ComponentInfo {com.fractalwrench.acidtest / com.fractalwrench.acidtest.activities.StartQuizActivity}: java.lang.IllegalArgumentException:没有提供额外的东西 startQuizActivity!
StartQuizActivity.java
@Override protected void onCreate(Bundle savedInstanceState) {
aminoAcid = getIntent().getExtras().getParcelable(AMINO_ACID);
super.onCreate(savedInstanceState);
if (aminoAcid != null) {
// do things
} else {
throw new IllegalArgumentException("No extras supplied to startQuizActivity!");
}
为什么设备能够启动此活动,因为无法使用应用程序的UI启动StartQuizActivity?我注意到该设备是一个运行API 21的root用户,并且已经看到应用程序中其他活动的类似崩溃。即使在尝试使用MonkeyRunner之后,我也无法在任何设备上重现崩溃。
这是Google的某种形式的自动化测试,还是具有特定设备设置的用户?任何想法将不胜感激。
的AndroidManifest.xml
<activity
android:name=".activities.StartQuizActivity"
android:label="@string/activity_title_prepare_for_quiz" />