title: Android: able to install app for unsupported Android version
body: <p>We're dropping support for Android 2.3 (API level 9) devices because most of our users have a newer Android version on their phones. I've updated the minimum SDK version to api level 14. </p>
  
  <pre><code>android {
      compileSdkVersion 23
      buildToolsVersion "23.0.2"
  
      defaultConfig {
          minSdkVersion 14
          targetSdkVersion 23
      }
  }
  </code></pre>
  
  <p>However I'm still able to install the app on Android 2.3 devices manually (not by store). Is this expected behavior or am I doing something wrong? I couldn't find the answer somewhere else.</p>
  
  <p>Another strange issue is that Lint doesn't detect the correct api level.</p>
  
  <pre><code>listView.setFastScrollAlwaysVisible(true);
  </code></pre>
  
  <p>This results in the warning: Call requires api level 11 (current min is 9).
  However my current minimum is now 14. So this indicates to me that i did something wrong. I tried cleaning and rebuilding the project, restarting Android Studio. It all didn't work.</p>
  
  <p>Can anyone help me out?</p>
  
  <p><strong>Edit</strong></p>
  
  <p>Based on Sufians comment I started fiddling around with my gradle files and I came to the following solution. However some questions still remain.
  My project structure looks like this:</p>
  
  <blockquote>
    <ul>
    <li>android.gradle (top-level build file which contains SDK versions)</li>
    <li>main module (contains base code for other modules)
    
    <ul>
    <li>build.gradle (apply from: '../android.gradle') </li>
    </ul></li>
    <li>sub module A (module specific changes)
    
    <ul>
    <li>build.gradle (has dependency on main module) </li>
    </ul></li>
    <li>sub module B (module specific changes)
    
    <ul>
    <li>build.gradle (has dependency on main module) </li>
    </ul></li>
    </ul>
  </blockquote>
  
  <p>I have a top-level build file <code>android.gradle</code> which contains the SDK versions. My modules then include the build file by <code>apply from: '../android.gradle'</code>. If I put the minSdkVersion directly in de main module the warnings disappear. Is that the way it should be? or do I need to set an minSdkVersion for every submodule? Or is there another way so that the SDK versions can stay within the <code>android.gradle</code> file?</p>