title: Android Gradle - Differences between Implementation, releaseImplementation and debugImplementation
body: <p>I've an Android app in Android Studio. I'm using <code>Gradle Version = 4.6, Android Plugin Version=3.2.1.</code>. It has a app module (main) and a library module. </p>
  
  <p>I renamed one of the class function in <code>library</code> module. After cleaning and building the <code>library</code> module followed by the <code>app</code> module, I'm getting this error in the app module: <code>error: cannot find symbol to the renamed class function</code></p>
  
  <p>Below is my build.gradle(app):</p>
  
  <pre><code>android {
  ...
  }
  dependencies {
  ...
    releaseImplementation 'com.example.library:1.0.0'
    debugImplementation project(':library')
  }
  </code></pre>
  
  <p>If I changed the build.gradle to the one below, then everything is ok.</p>
  
  <pre><code>android {
  }
  dependencies {
  ...
    implementation project(':library')
  }
  </code></pre>
  
  <p>I would like to know the differences between <code>implementation</code>, <code>releaseImplementation</code> and <code>debugImplementation</code>, and how can I use it in my situation.</p>