{"id":1434,"date":"2022-08-30T15:16:30","date_gmt":"2022-08-30T15:16:30","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/16\/multiple-seekbar-activity-fatal-crash-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:16:30","modified_gmt":"2022-08-30T15:16:30","slug":"multiple-seekbar-activity-fatal-crash-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/multiple-seekbar-activity-fatal-crash-collection-of-common-programming-errors\/","title":{"rendered":"Multiple SeekBar activity fatal crash-Collection of common programming errors"},"content":{"rendered":"<p>I have this MainActivity class in Android with multiple SeekBars:<\/p>\n<pre><code>package com.simplemathgame;\n\nimport android.os.Bundle;\nimport android.app.Activity;\nimport android.util.Log;\nimport android.widget.SeekBar;\nimport android.widget.SeekBar.OnSeekBarChangeListener;\nimport android.widget.TextView;\n\npublic class MainActivity extends Activity  implements OnSeekBarChangeListener {\n    private TextView numberOfAddDrills = (TextView) findViewById(R.id.add_drills_number);\n    private TextView numberOfSubDrills = (TextView) findViewById(R.id.sub_drills_number);\n    private TextView numberOfMulDrills = (TextView) findViewById(R.id.mul_drills_number);\n    private TextView numberOfDivDrills = (TextView) findViewById(R.id.div_drills_number);\n\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        SeekBar addSeekBar = (SeekBar) findViewById(R.id.add_seek_bar);\n        SeekBar subSeekBar = (SeekBar) findViewById(R.id.sub_seek_bar);\n        SeekBar mulSeekBar = (SeekBar) findViewById(R.id.mul_seek_bar);\n        SeekBar divSeekBar = (SeekBar) findViewById(R.id.div_seek_bar);\n\n        addSeekBar.setOnSeekBarChangeListener(this);\n        subSeekBar.setOnSeekBarChangeListener(this);\n        mulSeekBar.setOnSeekBarChangeListener(this);\n        divSeekBar.setOnSeekBarChangeListener(this);\n        Log.w(\"here\",\"2\");\n    }\n\n    @Override\n    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2){\n        Log.w(\"here\",\"3\");\n        switch (arg0.getId()) \n        {\n        case R.id.add_seek_bar:\n            numberOfAddDrills.setText(\"\"+arg1);\n            break;\n        case R.id.sub_seek_bar:\n            numberOfSubDrills.setText(\"\"+arg1);\n            break;\n        case R.id.mul_seek_bar:\n            numberOfMulDrills.setText(\"\"+arg1);\n            break;\n        case R.id.div_seek_bar:\n            numberOfDivDrills.setText(\"\"+arg1);\n            break;\n        }\n    }\n\n    @Override\n    public void onStartTrackingTouch(SeekBar seekBar) {\n        \/\/ TODO Auto-generated method stub\n\n    }\n\n    @Override\n    public void onStopTrackingTouch(SeekBar seekBar) {\n        \/\/ TODO Auto-generated method stub\n\n    }   \n}\n<\/code><\/pre>\n<p>Here is the LogCat:<\/p>\n<pre><code>12-20 08:58:49.402: D\/dalvikvm(668): GC_EXTERNAL_ALLOC freed 43K, 53% free 2546K\/5379K, external 1917K\/2137K, paused 43ms\n12-20 08:58:52.563: D\/AndroidRuntime(668): Shutting down VM\n12-20 08:58:52.563: W\/dalvikvm(668): threadid=1: thread exiting with uncaught exception (group=0x40015560)\n12-20 08:58:52.582: E\/AndroidRuntime(668): FATAL EXCEPTION: main\n12-20 08:58:52.582: E\/AndroidRuntime(668): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.simplemathgame\/com.simplemathgame.MainActivity}: java.lang.NullPointerException\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.os.Handler.dispatchMessage(Handler.java:99)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.os.Looper.loop(Looper.java:123)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread.main(ActivityThread.java:3683)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at java.lang.reflect.Method.invokeNative(Native Method)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at java.lang.reflect.Method.invoke(Method.java:507)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at dalvik.system.NativeStart.main(Native Method)\n12-20 08:58:52.582: E\/AndroidRuntime(668): Caused by: java.lang.NullPointerException\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.Activity.findViewById(Activity.java:1647)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at com.simplemathgame.MainActivity.(MainActivity.java:11)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at java.lang.Class.newInstanceImpl(Native Method)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at java.lang.Class.newInstance(Class.java:1409)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  ... 11 more\n12-20 08:58:54.923: I\/Process(668): Sending signal. PID: 668 SIG: 9\n<\/code><\/pre>\n<p>I don&#8217;t know where is this java.lang.RuntimeException. Thanks<\/p>\n<ol>\n<li>\n<p>You should take a look here, and see what&#8217;s null at that point:<\/p>\n<pre><code>12-20 08:58:52.582: E\/AndroidRuntime(668): Caused by: java.lang.NullPointerException\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at android.app.Activity.findViewById(Activity.java:1647)\n12-20 08:58:52.582: E\/AndroidRuntime(668):  at com.simplemathgame.MainActivity.(MainActivity.java:11)\n<\/code><\/pre>\n<p>So line 11 is where the crash is.<\/p>\n<p>The problem is you cannot call findViewById from there, call them inside the OnCreate method, after the setContentView.<\/p>\n<p>Hope that helps.<\/p>\n<\/li>\n<li>\n<p>You have to include all the <code>findViewById()<\/code> for TextView&#8217;s inside <code>onCreate()<\/code> because without <code>setContentView()<\/code> it will return <code>null<\/code>.<\/p>\n<pre><code>private TextView numberOfAddDrills;\nprivate TextView numberOfSubDrills;\nprivate TextView numberOfMulDrills;\nprivate TextView numberOfDivDrills;\n\n     @Override\n        public void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        numberOfAddDrills = (TextView) findViewById(R.id.add_drills_number);\n        numberOfSubDrills = (TextView) findViewById(R.id.sub_drills_number);\n        numberOfMulDrills = (TextView) findViewById(R.id.mul_drills_number);\n        numberOfDivDrills = (TextView) findViewById(R.id.div_drills_number);\n        .....\n    }\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-16 20:52:34. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I have this MainActivity class in Android with multiple SeekBars: package com.simplemathgame; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; public class MainActivity extends Activity implements OnSeekBarChangeListener { private TextView numberOfAddDrills = (TextView) findViewById(R.id.add_drills_number); private TextView numberOfSubDrills = (TextView) findViewById(R.id.sub_drills_number); private TextView numberOfMulDrills = (TextView) findViewById(R.id.mul_drills_number); private TextView numberOfDivDrills = (TextView) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1434","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=1434"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1434\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=1434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=1434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=1434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}