11-18 09:39:51.281 19604-19604/com.example.admin.emotion E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.admin.emotion, PID: 19604
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admin.emotion/com.example.admin.emotion.MainFragment}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6524)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.admin.emotion.MainFragment.initView(MainFragment.java:80)
at com.example.admin.emotion.MainFragment.onCreate(MainFragment.java:59)
at android.app.Activity.performCreate(Activity.java:6910)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6524)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
出問題的代碼:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main);
fragmentManager = getSupportFragmentManager();
initView();
setChioceItem(0);
}
private void initView() {
firstImage = (ImageView) findViewById(R.id.first_image);
secondImage = (ImageView) findViewById(R.id.second_image);
thirdImage = (ImageView) findViewById(R.id.third_image);
fourthImage = (ImageView) findViewById(R.id.fourth_image);
firstText = (TextView) findViewById(R.id.first_text);
secondText = (TextView) findViewById(R.id.second_text);
thirdText = (TextView) findViewById(R.id.third_text);
fourthText = (TextView) findViewById(R.id.fourth_text);
firstLayout = (RelativeLayout) findViewById(R.id.first_layout);
secondLayout = (RelativeLayout) findViewById(R.id.second_layout);
thirdLayout = (RelativeLayout) findViewById(R.id.third_layout);
fourthLayout = (RelativeLayout) findViewById(R.id.fourth_layout);
firstLayout.setOnClickListener(MainFragment.this);
secondLayout.setOnClickListener(MainFragment.this);
thirdLayout.setOnClickListener(MainFragment.this);
fourthLayout.setOnClickListener(MainFragment.this);
}
uj5u.com熱心網友回復:
NullPointerException 你是不是設定點擊的那個控制元件沒有賦予findviewbyid啊?uj5u.com熱心網友回復:
setOnClickListener的參考view為空,使用時增加判斷控制元件是否為空,或者排查你的流程找到真正的rootcause。uj5u.com熱心網友回復:
com.example.admin.emotion.MainFragment.initView(MainFragment.java:80)80行呼叫setOnClickListener的物件為空,
uj5u.com熱心網友回復:
1.看代碼你都已經findViewById2.既然能安裝說明編譯正確
由此可見你要找的id不在content_main這個布局檔案中,而在其他的布局檔案中
可以到MainFragment.java第80行看是哪個物件,然后到布局檔案中搜索一下看是否存在
uj5u.com熱心網友回復:
你的initView的方法寫的不對,你看一下Fragment的生命周期,你要使用View應該在onViewCreated之后,onCreate的時候界面還沒渲染到window中。uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/130696.html
標籤:Android
下一篇:有沒有哪位大神幫解決一下這道題
