title: How to solve NullPointerException void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest) with Butterknife
body: <p>Actually, I am trying to make an app with free and paid flavors. When I use simple findViewById method to bind then it works fine. But when I trying to add butterKnife, I desperately stuck with butterKnife.</p>
  
  <p>I am trying to bind content (such as AdMob OR Button) by butterknife bind in MainActivity.java file. but it shows Nullpointer exception error first it shows on AdMob object nullpointer exception. I run clean project then it shows on button.onClickListener Nullpointer exception. </p>
  
  <p>Please help me... </p>
  
  <p>Here is the Error: which shows AdMob nullpointerException:</p>
  
  <pre><code>09-08 19:04:30.860 19466-19466/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                     Process: com.santossingh.jokeapp.free, PID: 19466
                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.santossingh.jokeapp.free/com.santossingh.jokeapp.free.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                         at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                         at android.os.Looper.loop(Looper.java:148)
                                                         at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
                                                         at com.santossingh.jokeapp.free.MainActivity.onCreate(MainActivity.java:62)
                                                         at android.app.Activity.performCreate(Activity.java:6237)
                                                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                         at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                         at android.os.Looper.loop(Looper.java:148) 
                                                         at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                         at java.lang.reflect.Method.invoke(Native Method) 
                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
  09-08 19:04:35.652 837-2192/system_process E/Surface: getSlotFromBufferLocked: unknown buffer: 0xf2cf6c90
  09-08 19:04:56.030 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:06:20.986 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:07:41.011 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:09:01.042 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:10:20.982 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:11:46.019 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:13:06.051 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:14:41.018 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  09-08 19:16:06.047 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
  </code></pre>
  
  <p>2-MainActivity.java</p>
  
  <pre><code>public class MainActivity extends AppCompatActivity implements AsyncResponse{
  
      @BindView(R.id.avi) AVLoadingIndicatorView avLoadingIndicatorView;
      @BindView(R.id.button_jokeTeller) Button button_JokeTeller;
      @BindView(R.id.instruction_TextView)
      TextView instruction;
      @BindView(R.id.container) RelativeLayout relativeLayout;
      @BindView(R.id.adView) AdView adView;
      @BindView(R.id.progressBar) LinearLayout linearLayout;
  
      private InterstitialAd mInterstitialAd;
      EndpointsAsyncTask endpointsAsyncTask;
      private static final String JOKE_TAG="joke";
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          ButterKnife.bind(this);
  
          endpointsAsyncTask = new EndpointsAsyncTask(this);
  
          AdRequest adRequestBanner = new AdRequest.Builder().build();
          adView.loadAd(adRequestBanner);
  
          mInterstitialAd = new InterstitialAd(this);
          mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
          AdRequest adRequestInterstitial = new AdRequest.Builder().build();
          mInterstitialAd.loadAd(adRequestInterstitial);
  
          button_JokeTeller.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  showInterstitial();
              }
          });
  
          mInterstitialAd.setAdListener(new AdListener() {
              @Override
              public void onAdClosed() {
                  showProgressbar(true);
                  showJoke();
              }
  
              @Override
              public void onAdFailedToLoad(int errorCode) {
                  Toast.makeText(getApplicationContext(), "Ad failed to load! error code: " + errorCode, Toast.LENGTH_SHORT).show();
              }
  
              @Override
              public void onAdLeftApplication() {
                  showProgressbar(true);
                  Toast.makeText(getApplicationContext(), "Ad left application!", Toast.LENGTH_SHORT).show();
              }
  
              @Override
              public void onAdOpened() {
                  Toast.makeText(getApplicationContext(), "Ad is opened!", Toast.LENGTH_SHORT).show();
              }
          });
      }
      private void showInterstitial() {
          if (mInterstitialAd.isLoaded()) {
              mInterstitialAd.show();
          }
      }
  
      public void showJoke(){
          endpointsAsyncTask.execute(getString(R.string.keyword));
      }
  
      @Override
      public void processFinish(String result) {
          Intent intent = new Intent(this, JokeActivity
                  .class)
                  .putExtra(JOKE_TAG, result);
          showProgressbar(false);
          startActivity(intent);
      }
  
      public void showProgressbar(boolean a){
          if(a==true){
              relativeLayout.setVisibility(View.GONE);
              linearLayout.setVisibility(View.VISIBLE);
          }else{
              linearLayout.setVisibility(View.GONE);
              relativeLayout.setVisibility(View.VISIBLE);
          }
      }
  }
  </code></pre>
  
  <p>3- activity_main.xml file </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout
      android:id="@+id/activity_main"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="#0e73a6"
      android:padding="10dp"
      tools:context="com.santossingh.jokeapp.free.MainActivity"
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      xmlns:app="http://schemas.android.com/apk/res-auto"&gt;
      &lt;LinearLayout
          android:id="@+id/progressBar"
          android:layout_width="match_parent"
          android:gravity="center"
          android:layout_height="match_parent"&gt;
  
      &lt;com.wang.avi.AVLoadingIndicatorView
          android:id="@+id/avi"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          style="@style/AVLoadingIndicatorView"
          android:visibility="visible"
          app:indicatorName="BallPulseIndicator"
      /&gt;
  &lt;/LinearLayout&gt;
      &lt;RelativeLayout android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:id="@+id/container"&gt;
          &lt;TextView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/instructions"
              android:textColor="#fff"
              android:id="@+id/instruction_TextView"
          /&gt;
  
          &lt;Button android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/button_jokeTeller"
                  android:layout_below="@+id/instruction_TextView"
                  android:text="@string/button_text"
          /&gt;
  
          &lt;!-- view for AdMob Banner Ad --&gt;
          &lt;com.google.android.gms.ads.AdView
              android:id="@+id/adView"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentBottom="true"
              android:layout_centerHorizontal="true"
              ads:adSize="BANNER"
              ads:adUnitId="@string/banner_ad_unit_id"/&gt;
      &lt;/RelativeLayout&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>4- manifest file </p>
  
  <pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;
  
      &lt;uses-permission android:name="android.permission.INTERNET"/&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt;
  
      &lt;application&gt;
          &lt;activity android:name="com.santossingh.jokeapp.free.MainActivity"
          &gt;
              &lt;!-- This meta-data tag is required to use Google Play Services. --&gt;
              &lt;meta-data
                  android:name="com.google.android.gms.version"
                  android:value="@integer/google_play_services_version"/&gt;
  
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN"/&gt;
                  &lt;category android:name="android.intent.category.LAUNCHER"/&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
      &lt;/application&gt;
  
      &lt;activity
          android:name="com.google.android.gms.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
          android:theme="@android:style/Theme.Translucent"/&gt;
  &lt;/manifest&gt;
  </code></pre>