title: Butterknife binding outside of activity
body: <p>How to use binding with activity?</p>
  
  <pre><code>public class MyViewController extends BaseViewController&lt;MyActivity&gt; {
  
      @BindView(R.id.view_pager)
      ViewPager viewPager;
  
      public void bindViews() {
          //bind(@NonNull Object target, @NonNull Activity source)
          ButterKnife.bind(this, activity);
      }  
  }
  </code></pre>
  
  <p>looks good. But my application crashes within generated code:</p>
  
  <pre><code>    protected InnerUnbinder(final T target, Finder finder, Object source) {
      ...
            target.viewPager = finder.findRequiredViewAsType(source, 2131558529, "field 'viewPager'", ViewPager.class);
      ...
  }
  </code></pre>
  
  <p>where butterknife.internal.Finder.findRequiredViewAsType is</p>
  
  <pre><code>public final &lt;T&gt; T findRequiredViewAsType(Object source, int id, String who, Class&lt;T&gt; cls) {
      View view = findRequiredView(source, id, who);
      try {
        return cls.cast(view);
      } catch (ClassCastException e) {
        String name = getResourceEntryName(view, id);
        throw new IllegalStateException("View '"
            + name
            + "' with ID "
            + id
            + " for "
            + who
            + " was of the wrong type. See cause for more info.", e);
      }
  </code></pre>
  
  <p>Because "Object source" is Activity, but not View, my application will crash with Class Cast Exception. </p>
  
  <p>I have only one idea how to bind views outside of activity: send myActivity.findViwById(R.id.activity_root_view) as second parameter for binder (works fine). And I think, that this method should works fine without this uglycode. What do you think, where am I wrong?</p>
  
  <p>Butterknife 8.1.0-SNAPSHOT</p>