我刚刚将我的测试智能手机从Android 4.1.1更新到4.1.2,我收到的NullPointerException
之前没有显示过。
这是onCreate()
及后续方法。请注意,函数isOnline()
运行良好。
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
//fillStatusBar(isOnline());
fillStatusBar(false);
}
private void fillStatusBar(boolean isOnline){
TextView txt = (TextView) findViewById(R.id.txt_menu_connection_status);
if(isOnline){
//if(txt != null){
txt.setBackgroundColor(0xFF78AB46); // NullPointerException!!!
txt.setText("online");
//}
}else{
// TODO also an alert
txt.setBackgroundColor(0xFFF08080);
txt.setText("offline");
}
}
在activity_menu.xml中(例如,此处的第一个按钮正常显示):
<!-- (...) -->
<TextView style="@style/MainButton"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:layout_marginBottom="20dip"
android:text="@string/info"
android:onClick="onClickInfo"
/>
<TextView
android:id="@+id/txt_menu_connection_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="2dip"
/>
我评论了引发NullPointerException
的行。如果我进行检查if(txt != null)
,则不会抛出任何异常,并且布局正常显示而没有单TextView
。这怎么可能呢?我还可以提供什么来评估这个案例?
关注LogCat的图像。几秒钟后日志就会消失,同时保存日志时它也是空的。