android 方面一个小问题,各位大神快来围观!

疯狂的小雨 2015-01-31 02:40:40
环境 :android studio

构造函数中,开始声明了一个TextView
public class MainActivity extends ActionBarActivity {
private TextView MyTextView = null;

onCreate方法中我写下了findViewById:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

MyTextView = (TextView)this.findViewById(R.id.mytextview_id );
MyTextView.setText("第一个TextView");

虽然能够正常运行,但是竟然出现了错误:
Process: com.zhangjw.buttonandtext, PID: 4428
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.zhangjw.buttonandtext/com.zhangjw.buttonandtext.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at android.app.Activity.findViewById(Activity.java:2071)
at com.zhangjw.buttonandtext.MainActivity.<init>(MainActivity.java:12)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1572)
at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)


希望各位大神能迅速为我答疑解惑. 为什么 出现空指针的问题?
...全文
58904 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
莱茵河的雨季 2017-10-06
  • 打赏
  • 举报
回复
引用 4 楼 u014136660 的回复:
JeffTech 2015-12-04
  • 打赏
  • 举报
回复
求解释,我也想重现这个问题
空樱释 2015-09-29
  • 打赏
  • 举报
回复
你们确定是这个问题!!!为嘛我这重现不了
可可12 2015-06-03
  • 打赏
  • 举报
回复
这应该需要 看底层了 都是View的子类
andensy 2015-04-03
  • 打赏
  • 举报
回复
引用 3 楼 qq122810986 的回复:
[quote=引用 2 楼 a215508412 的回复:] 谢谢谢谢!!!! 对,我也刚才发现把这个 =null 去掉就行了. 哎, 我这是以为在 MyTextView = (TextView)this.findViewById(R.id.mytextview_id );这个地方才创建实例, 主要是C++养成的习惯 .是在声明 的时候 就给个Null
能不逗吗?成员对象变量默认的初始化就是null你显示跟隐式有区别么[/quote] 我也觉得没啥区别。为什么他改了之后就没问题了呢?什么原因?求解释。
Super_S_pan 2015-03-28
  • 打赏
  • 举报
回复
过于简单 2015-02-10
  • 打赏
  • 举报
回复
引用 2 楼 a215508412 的回复:
谢谢谢谢!!!! 对,我也刚才发现把这个 =null 去掉就行了. 哎, 我这是以为在 MyTextView = (TextView)this.findViewById(R.id.mytextview_id );这个地方才创建实例, 主要是C++养成的习惯 .是在声明 的时候 就给个Null
能不逗吗?成员对象变量默认的初始化就是null你显示跟隐式有区别么
疯狂的小雨 2015-01-31
  • 打赏
  • 举报
回复
谢谢谢谢!!!! 对,我也刚才发现把这个 =null 去掉就行了. 哎, 我这是以为在 MyTextView = (TextView)this.findViewById(R.id.mytextview_id );这个地方才创建实例, 主要是C++养成的习惯 .是在声明 的时候 就给个Null
山鹰1985 2015-01-31
  • 打赏
  • 举报
回复
Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference 翻译:试图在视图android.view.Window.findViewById(int)“空对象引用上调用虚拟方法。不给你报空指针才怪嘞。 private TextView MyTextView = null; 改成 private TextView MyTextView ; 或者 private TextView MyTextView = new TextView(this);

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧