The stacktrace here says that you tried to call
setOnClickListener on a
null object. This means that one of your
findViewById calls is returning a null value. This could be because you have a widget in the portrait layout and not in the landscape layout. You can use the debugger to pinpoint exactly where this happens.
Also, my recommendation to you is that you should never use the
configChanges attribute. When you do this, you are just covering up a problem that will still happen when the system has to recreate your Activity due to low-memory (you “fix” the problem on rotation but you aren’t fixing it completely).
You can use the
onSaveInstanceState mechanism to save your state across activity death and recreation. Keep working through the book and practice these concepts. I know this stuff can be confusing and complicated, but you will be a much better Android developer when you understand it.