As a software developer I love for things to be simple, and I hate for things to get between me, my code, and execution. As such I like powerful, scriptable build systems with wonderful dependency management (Gradle & make much love). I love for my coding tools to be able to use to be able to look at my build scripts and do intelligent things (see NetBeans with Maven, seriously this is done very, very right). I don’t like it when my coding tools try to subvert me (Eclipse is a war crime in this regard) or make changes on my behalf.
Android Studio, which is based on IntelliJ is starting toward the “subvert me” route by pestering me to use its instance of the Android SDK instead of my own. This is important because my instance of the SDK includes all of the packages downloaded already and it’s the location all of my build tools reference. Now when Android Studio overrides my choices it points my projects to a broken/unconfigured SDK, and suddenly things which worked hours before now have errors cropping up. Even worse, if I change my projects file back, Studio begins pestering me to use its SDK again, and it will every time you open your project until you use its SDK and start this whole mess over again.
I guess my point is, if your project breaks check your local.project file and make sure that it is using your SDK and not Android Studio’s.