【发布时间】:2015-06-11 04:11:56
【问题描述】:
我在 Google Play 商店中有一个应用程序。我通过 Crashlytics/Fabric 收到崩溃通知,所以我没有真正的 LogCat 可供参考。此外,我无法弄清楚如何在我自己的系统上复制此错误。
我从 Crashlytics 得到的错误如下:
com.company.appname.Fragment.onCreateView (Fragment.java:48)
这是类声明的相关细节:
import android.support.v4.app.Fragment;
public class MyTypeFragment extends Fragment {...
以下是该片段部分的代码:
44 mRestartButton = (Button)contentView.findViewById(R.id.restart_button);
45 mRestartButton.setTypeface(regularTf);
46 mRestartButton.setOnClickListener(new View.OnClickListener() {
47 @Override
48 public void onClick(View v) {
49 getFragmentManager().popBackStack("startingFragment", 0);
50 }
51 });
我觉得有趣的是,崩溃报告将崩溃列为 onCreateView() 方法,但第 48 行是我按钮的 onClickListener 上 onClick() 方法的声明。
我研究了以下问题:
在访问此片段的 XML 时,它们似乎都表明问题与不正确的 id 有关。但是,我认为这不是问题所在,因为这是该片段的 XML 部分(并且该片段只有一个布局):
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/restart_button"
android:layout_gravity="right"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:text="Restart"
/>
可能需要关注的一件事:我在我的许多片段上都使用了相同的范例。该应用程序的功能是钻取一系列问题以获得答案。 “重置”按钮允许他们一路回到起点,而无需经过他们一路上看到的任何中间片段。这些片段中的每一个都有一个以R.id.reset_button 命名的按钮。不过,正如我所说,我试图在我的最后复制这个问题,但无法弄清楚它是如何发生的。
我读过一些资料,表明此问题可能与某个片段以某种方式与其活动分离有关,但我什至尝试离开我的应用并返回,但仍然无法复制此错误。
【问题讨论】:
-
...或者布局可能是特定于平台的...您提供的信息无法回答这个问题...
-
@Selvin 我不明白你的评论是什么意思。你能详细说明一下吗?我对每个片段只有一个布局。平台的变化会有什么影响?
-
点击监听器
is insideonCreateView - 所以报告很好,很可能崩溃发生在这里:getFragmentManager().popBackStack("startingFragment", 0); -
@Selvin 不,就像我说的,所有片段只有一种布局。这是一个相当简单的应用程序 UI。
标签: android android-fragments nullpointerexception